Swift Review总结一:从 Swift Style 开始

JYJY 7年前
   <p>最近凑了几个热心的小伙伴写一些Swift的新手demo(两周后应该能和大家见面了),我参与了review。于是借demo里的代码总结一下新手写Swift要注意的问题,尤其是从oc转到用swift写的开发者。</p>    <p>每个语言都有自己的推荐风格。显然OC与Swift有着不同的风格。当我们开始写Swift,首先要注意的就是按照Swift的风格写,而不是沿用OC的风格。</p>    <h3><strong>省略句末的分号</strong></h3>    <p>swift推崇简洁的语法。如果一行里只有一句代码,句末不要写分号。</p>    <p><img src="https://simg.open-open.com/show/6d484e7388c4c274535b3fb69ce1d014.png"></p>    <h3><strong>省略self.</strong></h3>    <p>不在闭包里的时候调用自身的属性或者方式时省略self.。这点社区也产生过讨论,有人建议需要强制的声明self.,但是苹果大声的拒绝了。所以让代码更简洁一点吧。</p>    <p><img src="https://simg.open-open.com/show/ea60a40d4ceac79680cdb64c656fd80e.png"></p>    <h3><strong>注意类型标注的格式</strong></h3>    <p>当我们给一个变量或者属性标注类型时的语法是这样的:</p>    <p><img src="https://simg.open-open.com/show/8a45a3e9eb432249fdab90da80d984c0.png"></p>    <p>注意冒号后面有一个空格,如果是字典key的冒号后面有一个空格。</p>    <p>冒号后面紧跟着类型是不规范的写法。</p>    <p><img src="https://simg.open-open.com/show/a65c1fe3a6c998c6c48a06a2108c6c5d.png"></p>    <p>当然你可以利用 <a href="/misc/goto?guid=4958875017883588237" rel="nofollow,noindex">SwiftLint</a> 帮你检查。</p>    <h3><strong>注意函数声明背后的空格</strong></h3>    <p>一个标准的函数语法是这样的:</p>    <p><img src="https://simg.open-open.com/show/2f6314faef58c5269222e698ec1e81c4.png"></p>    <p>注意函数实现 { 前有一个空格</p>    <p><img src="https://simg.open-open.com/show/6950b1ef79a811cfa32169624255e770.png"></p>    <h3><strong>二元操作符前后有空格</strong></h3>    <p><img src="https://simg.open-open.com/show/4f1e6752535344013ecf60ae03b9e6dc.png"></p>    <p>闭包、函数实现不要写在一行里</p>    <p><img src="https://simg.open-open.com/show/85244028583d805ce4dd894d1ce7d7f0.png"></p>    <h3><strong>对象初始化不要显式调用init</strong></h3>    <p>通过()直接就是调用对象的初始化方法,不需要调用init</p>    <p><img src="https://simg.open-open.com/show/68d730b39df97d26256bfac97abf1fb4.png"></p>    <h3><strong>函数命名</strong></h3>    <p>oc的第一个参数名是省略的,所以会把第一个参数名带到方法名上。swift 3以后调整为在调用时第一个参数名会展示。所以函数命名时不要把第一个参数相关命名放在函数名上。</p>    <p><img src="https://simg.open-open.com/show/907b128c4ef9aa9ee643f949a6e58586.png"></p>    <p>然而这里直接把介词去掉显得更加简洁:</p>    <p><img src="https://simg.open-open.com/show/d38741cd71e1c54da838427bd018204c.png"></p>    <p> </p>    <p> </p>    <p>来自:http://www.cocoachina.com/swift/20161201/18251.html</p>    <p> </p>