命名约定
1. 代码命名约定; 2. 文件命名约定
最后更新于
这有帮助吗?
类名不需要使用Objective-C的规则增加前缀,Swift以模块的名称作为命名空间。
如果来自不同模块的两个名字发生冲突,可以通过在类型名称前面加上模块名称来消除歧义。
对于struct
, enum type
, class
, typedef
, associatedtype
, protocols
使用首字母大写的驼峰命名。
对于function
, method
, property
, constant
, variable
, argument names
, enum value
使用第一个单词首字母小写的驼峰命名。
处理一个缩略语或其他常用大写字母的名称时,要使用使用完全大写的命名方式。
所有与实例无关的常量,都需要声明为static
,以避免为每一个实例都声明一个常量。
这些常量应该放在class
或enum
的// Mark:
之后,或者放在一个不带大小写的枚举enum
中。使用枚举的优点是不会被意外的实例化,而且可以作为命名空间使用。
尽量在常量的使用范围内声明常量,不必把所有的常量都声明在共享的常量文件内。
避免类,变量等的模糊命名,尽量做到见名知意。
例如RoundAnimatingButton
比CustomButton
要更容易理解
避免使用单一名称或缩写。
只有在名称不明确的情况下才需要在命名中增加类型信息。
使用IBOutlet
时,在名称结尾添加类型。
函数参数命名,需要确保函数易于阅读,以便理解每个参数的目的。
协议应该被命名为名词;如果不能,也可以在协议中添加Protocol
后缀。
只包含单一类型如MyType
的文件命名为MyType.Swift
。
包含MyType
类型和一些上层的辅助函数(非主要实体)也可以命名为MyType.Swift
。
为MyType
类型扩展添加遵循了协议MyProtocol
,这个文件可以被命名为MyType+MyProtocol.swift
。
当为某个类型添加了多个扩展或辅助函数,可以使用MyType+
为前缀,使文件名称具有通用性。如MyType+Additions.swift
。
当一些声明不在公共类型或命名空间下,可以使用描述性的方式命名。
如全局数学函数的集合可以命名为Math.Swift
。