SwiftLint Returning Whitespace Violation报错:如何修复代码空格违规?
修复SwiftLint的「Returning Whitespace Violation」报错
嘿,这个问题我之前也碰到过!SwiftLint的「Returning Whitespace Violation」其实就是在挑你代码里返回箭头(->)前后的空格毛病,规则很明确:箭头前后必须各有且只有一个空格,不管是闭包类型里的箭头还是函数返回的箭头。
针对你给出的两段代码,具体修复方法如下:
1. 修复属性定义的空格问题
原代码:
var completion: (()-> Void)?
问题出在闭包类型(()-> Void)里的->前面没有空格,我们需要在()和->之间加一个空格,让箭头前后都有单个空格:
var completion: (() -> Void)?
2. 修复函数声明的空格问题
原代码:
class func showView(inside view: UIView, with trophy: Trophy, completion:(()-> Void)? = nil) -> TrophyDetailsView { }
这里有两处需要调整:
- 同样是闭包参数类型
(()-> Void)要改成(() -> Void),保证箭头前后的空格规范 - 顺便确认函数返回箭头
->的前后:参数列表的闭括号和箭头之间、箭头和返回类型TrophyDetailsView之间,都要保持单个空格(原代码这里其实是对的,但如果有多个空格也会触发报错,注意保持单个空格即可)
修复后的代码:
class func showView(inside view: UIView, with trophy: Trophy, completion: (() -> Void)? = nil) -> TrophyDetailsView { }
额外方案:如果不想遵循这个规则
要是团队有自己的代码规范,不想用SwiftLint的这个检查,可以在项目的.swiftlint.yml配置文件里禁用该规则:
disabled_rules: - returning_whitespace
不过还是建议尽量遵循统一的空格规范,让代码看起来更整洁~
内容的提问来源于stack exchange,提问作者Monty
相关产品推荐
相关产品推荐

