前言
关于Swift的代码的相关规范,不同的开发者都有自己相应的规范,可能还是很多人根本就没有规范。为了保证同一个公司同一个项目组中代码美观并且一致,这里写下这份Swift编程规范指南。该指南首要目标是让代码紧凑,可读性更高且简洁。
代码格式
使用四个空格进行缩进
每行最多160个字符,这样可以避免一行过长(Xcode->Preferences->Text Editing->Page guide at column: 设置成160即可)
确保每个文件结尾都有空白行
确保每行都不以空白符作为结尾(Xcode->Preferences->Text Editing->Automatically trim trailing whitespace + Including whitespace-only lines)
左大括号不用另起一行
class SomeClass {
func someMethod() {
if x == y {
/* ... */
} else if x == z {
/* ... */
} else {
/* ... */
}
}
/* ... */
}
要在逗号后面加空格
let array = [1, 2, 3, 4, 5];
二元运算符(+,==,或>)的前后都需要添加空格,左小括号和右小括号前面不需要空格。
let value = 20 + (34 / 2) * 3
if 1 + 1 == 2 {
//TODO
}
func pancake -> Pancake {
/** do something **/
}
遵守Xcode内置的缩进格式,当声明的一个函数需要跨多行时,推荐使用Xcode默认格式。
// Xcode针对跨多行函数声明缩进
func myFunctionWithManyParameters(parameterOne: String,
parameterTwo: String,
parameterThree: String) {
// Xcode会自动缩进
print("(parameterOne) (parameterTwo) (parameterThree)")
}
// Xcode针对多行 if 语句的缩进
if myFirstVariable > (mySecondVariable + myThirdVariable)
&& myFourthVariable == .SomeEnumValue {
// Xcode会自动缩进
print("Hello, World!")
}
当调用一个函数有多个参数时,每个参数另起一行,比函数名多一个缩进。
functionWithArguments(
firstArgument: "Hello, I am a string",
secondArgument: resultFromSomeFunction()
thirdArgument: someOtherLocalVariable)
当遇到需要处理的数组或字典内容较多需要多行显示时,需要把[和]类似方法体里面的括号,方法体里的闭合也要做类似的处理。
functionWithBunchOfArguments(
someStringArgument: "hello I am a string",
someArrayArgument: [
"dadada daaaa daaaa dadada daaaa daaaa dadada daaaa daaaa",
"string one is crazy - what is it thinking?"
],
someDictionaryArgument: [
"dictionary key 1": "some value 1, but also some more text here",
"dictionary key 2": "some value 2"
],
someClosure: { parameter1 in
print(parameter1)
})
尽量避免出现多行断言,可使用本地变量或其他策略








