3月24日涕刚,當(dāng)新冠肺炎席卷全球的時候,Swift 5.2發(fā)布了乙帮。這個版本主要是在編譯診斷杜漠、debug穩(wěn)定性等方面改善了開發(fā)者體驗,在語言層面的改動不多察净。這里先簡單聊聊“Key Path Expressions as Functions”這一新特性驾茴。
我們先來簡單創(chuàng)建一個User struct:
struct User {
let email: String
let isAdmin: Bool
}
現(xiàn)在,假設(shè)我們有個user數(shù)組氢卡,想要獲取一個email數(shù)組锈至,我們可以這樣做:
users.map { $0.email }
當(dāng)然也可以自己遍歷,但顯然map一下又快又簡潔译秦。但可不可以更簡潔一點裹赴?于是上面提到的這個特性就被提出來了,中文大概意思就是:用Key Path的表達(dá)式來代替{ $0.email }
這個函數(shù)诀浪。直接看替換后的樣子:
users.map(\.email)
是不是更簡潔一點棋返?
接下來,假如我們又想獲得每個用戶的郵箱的長度怎么辦呢雷猪?繼續(xù)在email的key path基礎(chǔ)上獲取下count就可以了:
users.map(\.email.count)