SwiftLint代码规范属性说明03
这篇文章是继前两篇文章的继续更新
Xcode代码规范之SwiftLint配置–这篇文章对SwiftLint进行了简单介绍和针对Xcode的相关配置
SwiftLint代码规范属性说明01–这里介绍了上半部分的相关属性的介绍
SwiftLint代码规范属性说明02–这里介绍了上半部分的相关属性的介绍
下面来具体介绍一下SwiftLint的其他的代码规则的相关说明
规则101: switch_case_alignment
switch-case语句中switch和case应该垂直对齐
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
switch_case_alignment | 启用 | no | style |
代码示例:
1 | //应该是这样 |
规则102: switch_case_on_newline
在switch语法里, case应该总是在一个新行上面
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
switch_case_on_newline | 启用 | no | idiomatic |
代码示例:
1 | /// swiftlint表示会触发warning |
规则103: syntactic_sugar
swiftlint推荐使用速记语法糖, 例如 [Int] 代替 Array, 强烈建议推荐使用
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
syntactic_sugar | 启用 | no | idiomatic |
代码示例:
1 | /// 触发warning |
规则104: todo
TODO 和 FIXME 应该避免使用, 使用“notaTODO 和 notaFIXME”代替。另外, 和 MARK 标记不同的是, “notaTODO 和 notaFIXME”没有空格要求
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
todo | 启用 | no | lint |
规则105: trailing_closure
关于闭包中{}的使用, 推荐使用尾随闭包的语法
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
trailing_closure | 未启用 | no | style |
代码示例:
1 | //推荐使用 |
规则106: trailing_comma
…
这个属性主要针对数组和字典最后一个元素, 不建议在最后一个元素会面加逗号
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
trailing_comma | 启用 | yes | style |
代码示例:
1 | /// 数组这样写是没有任何问题的, 但是最后一个元素3后面加了一个逗号“,”尽管这样不会报错,但是这会让程序的可读性变差 |
规则107: trailing_newline
文件(属性、方法)结束的的时候(“}”之前), 应该有一个空格新行,但这里要注意的是
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
trailing_newline | 启用 | yes | style |
代码示例:
1 | /// 空一行,不会触发警告 |
规则108: trailing_semicolon
尽管在变量或常量赋值之后加不加分号在swift中没有硬性的要求,但是为了使code style更swift化,所以尽量或者绝对不要加“;”
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
trailing_semicolon | 启用 | yes | idiomatic |
规则109: trailing_whitespace
函数方法结束后,不建议添加空格行, 和vertical_whitespace貌似有冲突
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
trailing_whitespace | 启用 | yes | style |
代码示例:
1 | /// 下面这个例子不会触发警告,但是一旦其中有一个空行就会触发警告trailing_whitespace, 这和vertical_whitespace实质上有些冲突,vertical_whitespace要求两行code之间不超过1行,要么没有空行,要么只有1行,而trailing_whitespace要求没有空行!!! |
规则110: type_body_length
类型体长度。类型体长度不应该跨越太多行, 超过200行给warning,超过350行给error。一般是大括号或者括号内, 比如定义一个enum或struct
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
type_body_length | 启用 | no | metrics |
规则111: type_name
…
类型名, 类型名应该只包含字母数字字符, 并且以大写字母开头,长度在3-40个字符
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
type_name | 启用 | no | idiomatic |
规则112: unneeded_break_in_switch
在switch-case语句中, 有方法调用或操作时,避免使用break语句
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
unneeded_break_in_switch | 启用 | no | idiomatic |
代码示例:
1 | //不会触发warning |
规则113: unneeded_parentheses_in_closure_argument
…
在定义或使用闭包时,闭包参数不建议使用括号()
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
unneeded_parentheses_in_closure_argument | 未启用 | yes | style |
代码示例:
1 | //建议 |
规则114: unused_closure_parameter
swiftlint建议最好把不使用的闭包参数使用 “_”代替
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
unused_closure_parameter | 启用 | yes | lint |
代码示例:
1 | //不会触发warning |
规则115: unused_enumerated
在for遍历数组时, 如有未使用的索引,不建议使用.enumerated()
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
unused_enumerated | 启用 | no | idiomatic |
代码示例:
1 | //不会触发warning |
规则116: unused_optional_binding
在使用if判断某变量是否为nil的时候, 不建议使用下划线(_)
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
unused_optional_binding | 启用 | no | style |
代码示例:
1 | //不会触发warning |
规则117: valid_ibinspectable
@IBInspectable在swiftlint中的使用需要注意, 第一必须是变量, 第二必须要有指定的类型,如果指定的类型是可选类型或者隐式类型,则目前官方只支持以下几种类型:
String, NSString, UIColor, NSColor, UIImage, NSImage.
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
valid_ibinspectable | 启用 | no | lint |
代码示例:
1 | /// 指定为变量var, 类型为String?和String! |
规则118: vertical_parameter_alignment
垂直方向上的参数对齐。当函数参数有多行的时候, 函数参数在垂直方向上应该对齐(参数换行的时候左边对齐)
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
vertical_parameter_alignment | 启用 | no | style |
代码示例:
1 | //不会触发warning |
规则119: vertical_parameter_alignment_on_call
当调用多个参数的函数时,如果参数多行显示,则应该垂直对齐
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
vertical_parameter_alignment_on_call | 未启用 | no | style |
代码示例:
1 | //不会触发warning |
规则120: vertical_whitespace
垂直方向上的空格行,限制为一行(注释除外)
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
vertical_whitespace | 启用 | yes | style |
代码示例:
1 | /// 没有空格, nonTriggerWarning |
规则121: void_return
多余的返回值为空, 在函数声明的时候,返回值为空是多余的。定义常量或者变量的时候可以
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
void_return | 启用 | yes | style |
代码示例:
1 | /// 这个属性要求这样写, 返回值为空省略 |
规则122: weak_delegate
代理应该写成weak类型(弱代理)来避免循环引用
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
weak_delegate | 启用 | no | lint |
代码示例:
1 | /// 1.1 编译通过 |
规则123: xctfail_message
单元测试中,XCTFail调用应该包括声明描述
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
xctfail_message | 启用 | no | idiomatic |
规则124: yoda_condition
执行判断语句时, 变量名应该放在运算符的左边
识别码 | 默认是否启用 | 是否支持自动更正 | 类型 |
---|---|---|---|
yoda_condition | 未启用 | no | lint |
代码示例:
1 | //不会触发warning |
文中如有不足之处请多指教
持续更新中…..