Swift代碼規(guī)范

  • 對(duì)于命名, 應(yīng)當(dāng)見名知意, 從使用者的角度去考慮

  • 簡(jiǎn)潔有助于代碼清晰, 但是不能以自我為中心, 不能簡(jiǎn)潔到只有自己能看懂

  • 一定要給函數(shù)添加注釋, 尤其是泛型函數(shù)

  • 類使用大寫字母開頭,函數(shù)、變量/常量和枚舉成員(case)使用小寫字母開頭,兩者都使用駝峰式命名法

  • 使用類型推斷, 省略掉顯而易見的類型會(huì)有助于提高可讀性

  • 如果存在歧義或者在進(jìn)行定義的時(shí)候不要使用類型推斷。(比如 func 就需要顯式地指定返回類型)

  • 優(yōu)先選擇結(jié)構(gòu)體,只在確實(shí)需要使用到類特有的特性或者是引用語(yǔ)義時(shí)才使用類

  • 除非你的設(shè)計(jì)就是希望某個(gè)類被繼承使用,否則都應(yīng)該將它們標(biāo)記為 final。

  • 除非一個(gè)閉包后面立即跟隨有左括號(hào),否則都應(yīng)該使用尾隨閉包 (trailing closure) 的語(yǔ)法

  • 使用 guard 來提早退出方法

  • 避免對(duì)可選值進(jìn)行強(qiáng)制解包和隱式強(qiáng)制解包

  • 不要寫重復(fù)的代碼。如果你發(fā)現(xiàn)你寫了好幾次類似的代碼片段的話,試著將它們提取到一個(gè)函數(shù)里,并且考慮將這個(gè)函數(shù)轉(zhuǎn)化為協(xié)議擴(kuò)展的可能性

  • 去使用 map, reduce, filter, first, flatMap等,高階函數(shù)的意義是讓代碼可讀性更高, 熟能生巧

  • 除非你需要改變某個(gè)值,否則都應(yīng)該使用 let 來聲明變量。不過如果能讓代碼更加清晰高效的話,也可以選擇使用可變的版本。用函數(shù)將可變的部分封裝起來,再用let去接收

  • Swift 的泛型可能會(huì)導(dǎo)致非常長(zhǎng)的函數(shù)簽名。壞消息是我們現(xiàn)在除了將函數(shù)聲明強(qiáng)制寫成幾行以外,對(duì)此并沒有什么好辦法

  • 不要使用 "self.", 不過在閉包表達(dá)式中,self 是被強(qiáng)制使用的,這是一個(gè)清晰的信號(hào),表明閉包將會(huì)捕獲 self

  • 盡可能地對(duì)現(xiàn)有的類型和協(xié)議進(jìn)行擴(kuò)展,而不是寫一些全局函數(shù)。這有助于提高可讀性,讓別人更容易發(fā)現(xiàn)你的代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容