所在的位置: swift >> swift前景 >> 团队Swift编码规范

团队Swift编码规范

1、面对一个文件中的方法很多时,我们可以使用MARK分组对方法进行注释,方便查找

//MARK:-VCLifeCycleMethodsoverridefuncviewDidLoad(){super.viewDidLoad()//...//...}//MARK:-CustomMethodsfuncformatString(){//...//...}

注意:团队中如果有人使用Extension去分割代码(不建议),提高可读性!但是应当注意的是,Extension中的方法,子类无法重写!

2、不管是否用来终止语句还是分割语句,都不应该使用分号

建议:functest(){letstrd="dsj"print(strd)}不建议:functest(){letstrd="dsj";print(strd);}

3、当函数没有返回值的时候可以把Void省略

建议:funcmyTest(){}不建议:funcmyTest()-Void{}

4、在定义类和函数的时候,左大括号不需要另起一行且在前面需留有空格。

建议:classMyTest(){}funcmyTest(){}不建议:classMyTest(){}funcmyTest(){}

5、在一个文件中,两个类或者方法之间需要有空格。

正确:classMyTest(){}funcmyTest(){}错误:classMyTest(){}funcmyTest(){}

6、代码中的运算符前后应有空格(单目运算符除外)。

正确:leta=1+1;错误:leta=1+1;

7、逗号后面需要有空格。

正确:letarr=[1,2,3,4,5]错误:letarr=[1,2,3,4,5]

8、类继承、函数参数中的变量与类型之间等带有冒号的情况:冒号前不加空格,冒号后需要加空格。

正确:classAppDelegate:UIResponder,UIApplicationDelegate{}funcmyTest(a:Int){}错误:classAppDelegate:UIResponder,UIApplicationDelegate{}funcmyTest(a:Int){}

9、if语句中的else必须跟在上一个if的右括号后面。

正确:ifsuccess{}else{}错误:ifsuccess{}else{}

10、在switch语句中,case应当与switch语句对齐。(可使用Xcode格式化代码快捷键ctrl+i进行对齐操作)

正确:switchval{case0:print("")case1:print("")default:print("default")}错误:switchval{case0:print("")case1:print("")default:print("default")}

11、实现协议时可将相关协议函数放置在单独extension中,提高代码可读性。

建议:classTestViewController:UIViewController{}extensionTestViewController:UITableViewDataSource{}extensionTestViewController:UITableViewDelegate{}不建议:classTestViewController:UIViewController,UITableViewDataSource,UITableViewDelegate{}

12、闭包声明不需要写参数名,只需声明类型即可。

建议:funcmyTest(success:(String)-Void){}不建议:funcmyTest(success:(_data:String)-Void){}

13、闭包含多参数值,如果其中的参数没有用到,可以用“_”把参数省略

建议:loadData{_,_,name3inprint(name3)}不建议:loadData{name1,name2,name3inprint(name3)}

14、简单闭包表达式写在同一行且省略return。

建议:letsortNames=names.sorted(by:{$0$1})不建议:letsortNames=names.sorted(by:{return$0$1})

15、闭包循环引用:使用weakself修饰的闭包,需要判断self有效性。

requestData(success:{[weakself]inguardletstrongSelf=selfelse{return}strongSelf.updateUI()})

16、尾随闭包只在单参数条件下使用

建议:letsquares=[1,2,3].map{$0*$0}UIView.animate(withDuration:1.0,animations:{},


转载请注明:http://www.aierlanlan.com/cyrz/14.html