3月24日,当新冠肺炎席卷全球的时候,Swift 5.2发布了。这个版本主要是在编译诊断、debug稳定性等方面改善了开发者体验,在语言层面的改动不多。这里先简单聊聊“Key Path Expressions as Functions”这一新特性。
我们先来简单创建一个User struct:
struct User {
let email: String
let isAdmin: Bool
}
现在,假设我们有个user数组,想要获取一个email数组,我们可以这样做:
users.map { $0.email }
当然也可以自己遍历,但显然map一下又快又简洁。但可不可以更简洁一点?于是上面提到的这个特性就被提出来了,中文大概意思就是:用Key Path的表达式来代替{ $0.email }
这个函数。直接看替换后的样子:
users.map(\.email)
是不是更简洁一点?
接下来,假如我们又想获得每个用户的邮箱的长度怎么办呢?继续在email的key path基础上获取下count就可以了:
users.map(\.email.count)
网友评论