Swift Review總結一:從 Swift Style 開始

最近湊了幾個熱心的小伙伴寫一些swift的新手demo(兩周后應該能和大家見面了),我參與了review。于是借demo里的代碼總結一下新手寫swift要注意的問題,尤其是從oc轉到用swift寫的開發(fā)者。

每個語言都有自己的推薦風格。顯然oc與swift有著不同的風格。當我們開始寫swift,首先要注意的就是按照swift的風格寫,而不是沿用oc的風格。

省略句末的分號

swift推崇簡潔的語法。如果一行里只有一句代碼,句末不要寫分號。

// ??
title = "swift 3";

// ??
title = "swift 3"

省略self.

不在閉包里的時候調用自身的屬性或者方式時省略self.。這點社區(qū)也產生過討論,有人建議需要強制的聲明self.,但是蘋果大聲的拒絕了。所以讓代碼更簡潔一點吧。

// ??
self.title = "swift 3"

// ??
title = "swift 3"

注意類型標注的格式

當我們給一個變量或者屬性標注類型時的語法是這樣的:

var a: Type
var dict: [String: Any]

注意冒號后面有一個空格,如果是字典key的冒號后面有一個空格。
冒號后面緊跟著類型是不規(guī)范的寫法。

// ??
var name:Sring
var dict: [String:Any]
var dict: [String : Any]

當然你可以利用SwiftLint幫你檢查。

注意函數聲明背后的空格

一個標準的函數語法是這樣的:

override func viewDidLoad() {
    super.viewDidLoad()
}

注意函數實現 { 前有一個空格

 // ??
class User{
    subscript(index: Int) -> T{
        return objects[index]
    }
}

 // ??
class User {
    subscript(index: Int) -> T {
        return objects[index]
    }
}

二元操作符前后有空格

 // ??
var sum = 1+2
// ??
var sum = 1 + 2

// 注意函數返回類型 -> 符號的前后空格
 // ??
func greet(person: String, day: String)->String {
    return "Hello \(person), today is \(day)."
}
 // ??
func greet(person: String, day: String) -> String {
    return "Hello \(person), today is \(day)."
}

閉包、函數實現不要寫在一行里

    //  ??
    var joke : JokeItem? {
        didSet {
            if let _ = joke { updateUI() }
        }
    }

    // ??
    var joke : JokeItem? {
        didSet {
            if let _ = joke {
                updateUI()
            }
        }
    }

對象初始化不要顯式調用init

通過()直接就是調用對象的初始化方法,不需要調用init

 //  ??
let url = NSURL.init(string: "github.com")

// ??
let url = NSURL(string: "github.com")

函數命名

oc的第一個參數名是省略的,所以會把第一個參數名帶到方法名上。swift 3以后調整為在調用時第一個參數名會展示。所以函數命名時不要把第一個參數相關命名放在函數名上。

 //  ??
func bindWith(data: String) {

}

// ??
func bind(withData: String) {
    
}

bind(withData: "swift")

然而這里直接把介詞去掉顯得更加簡潔:

// ??
func bind(data: String) {
    
}

bind(data: "swift")

歡迎關注我的微博:@沒故事的卓同學


相關鏈接:
swift style guide

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容