mirror of
https://github.com/zh-google-styleguide/zh-google-styleguide.git
synced 2025-02-19 20:50:10 +08:00
53 lines
3.1 KiB
ReStructuredText
53 lines
3.1 KiB
ReStructuredText
|
2. 源文件基础
|
|||
|
----------------
|
|||
|
|
|||
|
2.1. 文件名
|
|||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|||
|
|
|||
|
源文件的文件名由其包含的 :ref:`唯一的 <one-top-level>` 顶级类的名称(大小写敏感)加上 ``.java`` 扩展名构成。
|
|||
|
|
|||
|
2.2. 文件编码:UTF-8
|
|||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|||
|
|
|||
|
源文件应使用 **UTF-8** 编码。
|
|||
|
|
|||
|
2.3. 特殊字符
|
|||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|||
|
|
|||
|
2.3.1. 空白字符
|
|||
|
""""""""""""""""""""""""""""""""""""""""""""""""""
|
|||
|
|
|||
|
除了换行符之外,源文件中唯一能够出现的空白字符是 **ASCII的水平空格字符(0x20)** 。这意味着:
|
|||
|
|
|||
|
- 1. 字符串和字符组成的文本中的所有其他空白字符都应该被转义
|
|||
|
- 2. Tab字符 **不能** 用于缩进
|
|||
|
|
|||
|
2.3.2 特殊转义序列
|
|||
|
""""""""""""""""""""""""""""""""""""""""""""""""""
|
|||
|
|
|||
|
对于任何 `有特殊转义序列 <https://docs.oracle.com/javase/tutorial/java/data/characters.html>`_ 的字符( ``\b`` 、 ``\t`` 、 ``\n`` 、 ``\f``、 ``\r``、 ``\"``、 ``\'``和 ``\\``),应使用以上序列,而不是相应的八进制(例如 ``\012``)或Unicode(例如 ``\u000a``)转义。
|
|||
|
|
|||
|
2.3.3. 非ASCII字符
|
|||
|
""""""""""""""""""""""""""""""""""""""""""""""""""
|
|||
|
|
|||
|
对于其余的非ASCII字符,可以使用实际的Unicode字符(例如 ∞)或等效的Unicode转义(例如 ``\u221e``),这只取决于哪种方式使代码 **更容易阅读和理解** ,尽管我们强烈不建议在字符串文本和注释之外使用Unicode转义。
|
|||
|
|
|||
|
.. tip::
|
|||
|
|
|||
|
在使用Unicode转义的情况下,即使在偶尔使用实际的Unicode字符的时候,添加一个解释性的注释可能会非常有帮助。
|
|||
|
|
|||
|
示例:
|
|||
|
|
|||
|
============================================================ ============================================================
|
|||
|
例子 点评
|
|||
|
============================================================ ============================================================
|
|||
|
``String unitAbbrev = "μs";`` 最佳:即使没有注释也完全清晰明了
|
|||
|
``String unitAbbrev = "\u03bcs"; // "μs"`` 可以,但没有理由这样做
|
|||
|
``String unitAbbrev = "\u03bcs"; // Greek letter mu, "s"`` 可以,但这样不够优雅且容易出错
|
|||
|
``String unitAbbrev = "\u03bcs";`` 差:读者完全不知道这是什么
|
|||
|
``return '\ufeff' + content; // byte order mark`` 好:对不可打印的字符使用转义,并在必要时加上注释
|
|||
|
============================================================ ============================================================
|
|||
|
|
|||
|
.. tip::
|
|||
|
|
|||
|
永远不要仅仅因为担心某些程序可能无法正确处理非ASCII字符而去降低代码的可读性。如果真的发生这种情况,那么说明这些程序是有问题的,你应该修复它们。
|