没有合适的资源?快使用搜索试试~ 我知道了~
首页Google命名规范中文版本
资源详情
资源评论
资源推荐

引言
本文为 编程语言编码规范的完整定义。依照此规范编写的
源码文件可以被称为 。
和其他编程规范指南一样,规范不仅包括代码的结构美学,也包括了其他
一些业界约定俗成的公约和普遍采用的标准。本文档中的规范基本都是业界已
经达成共识的标准,我们尽量避免去定义那些还存在争议的地方。
1.1 术语说明
在本文中(除非另有说明):
类 ( ) : 用 于 标 识 是 一 个 普 通 类 ( ) 、 枚 举 类
()、接口()或注解类型()。
成员():表示嵌套类、属性、方法或构造方法;
即除了初始化和注释之外的类的所有顶级内容。
注释 ()总是指 (实现注
释)。我们不使用“文档注释”这样的说法,而会直接说“。
其它术语将在文档中单独说明。
1.2 指南说明
本文档中的代码并不一定符合所有规范。即使这些代码遵循
,但这不是唯一的代码规范。例子中可选的格式风格也不应该作为强制执
行的规范。
2 源码文件基础
2.1 文件名
源码文件名由它所包含的顶级 的类名(区分大小写),加上 扩
展名组成。
2.2 文件编码:UTF-8

源码文件编码应为 !"#$。
2.3 特殊字符
2.3.1 空格字符
除了换行符外,%&& 水平空白字符('(')是源码文件中唯一支持的空
格字符。这意味着:
字符串和字符文字中的所有其它空格字符都将被转义。
制表符(! 键)不用于缩进。
2.3.2 特殊转义字符串
任何需要转义字符串表示的字符(例如)*)*)*)*)*)+*)等),采用这
种转义字符串的方式表示,而不采用对应字符的八进制数(例如 )')或
码(例如 )''')表示。
2.3.3 非 ASCII 字符
对于其余非 %&& 字符,直接使用 字符(例如 ∞),或者使用对
应的 码(例如 ))转义,都是允许的。唯一需要考虑的是,何
种方式更能使代码容易阅读和理解。
提示:在使用 unicode 码转义,或者甚至是有时直接使用 unicode 字符的
时候,添加一点说明注释将对别人读懂代码很有帮助。
例子:
提示:不要因为担心一些程序无法正常处理 ASCII 字符而不使用它,从而
导致代码易读性变差。如果出现这样的问题,应该由出现问题的程序去解
决。
3.源码文件结构
源码文件包括,依次是:
, 或者 - 声明信息
包声明语句
语句

. 类声明
每个部分之间以一行空行分隔。
3.1 Lincense 或 copyright 声明信息(如有)
如果需要声明 或 - 信息,应该在文件开始时声明。
3.2 包声明
包声明没有长度限制,单行长度限制规范,不适用于包声明。
3.3 import 语句
3.3.1 不使用通配符 import
不应使用通配符 ,不管是不是静态导入。
3.3.2 没有行长度限制
语句的行,没有行长度的限制。单行长度限制规范,不适用于
语句所在行。
3.3.3 顺序和空行
的顺序如下:
所有静态导入()为一组
所有非静态导入为一组
如果同时存在静态导入与非静态导入,则以一个空白行分隔, 语句
之间没有其它空行。
每一个组中, 的名称以 %&& 排序显示。
3.3.4 没有静态导入的类
静态导入不能用于静态嵌套类。它们可以正常导入。

3.4 类声明
3.4.1 只声明唯一一个顶级 class
每个源码文件中只能有一个顶级 。
3.4.2 类成员顺序
类成员的顺序对代码的易读性有很大影响,但是没有一个统一正确的标准。
不同的类可以以不同的方式对其内容进行排序。
重要的是,每个 都要按照一定的逻辑规律排序。当被问及时,能够
解释清楚为什么这样排序。例如,新增加的成员方法,不是简单地放在
代码最后面,按日期排序不是按逻辑排序。
3.4.2.1 重载:从不分开
当一个类有多个构造函数或多个同名的方法时,这个函数要写在一些,中
间不要有其它代码。
4、格式规范
术语注:块状结构(/#/)指类、成员函灵敏和构造函数
的主体。需要注意的是,在后面的 .$ 节中讲到的数组初始化,所有的数
组初始化都可以被 认为是一个块状结构(非强制)。
4.1 大括号
4.1.1 在需要的地方使用
大括号用在 ****和 0- 等语句。甚至当它的实现为空或者只有
一句话时,也要使用。
4.1.2 非空语句块采用 K&R 风格
对于非空语句块,大括号遵循 1- 和 2- 的风格:
大括号前没有换行
开头大括号后换行
剩余16页未读,继续阅读
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1