Swift 5.2新特性之Key Path Expression

2020-04-22  本文已影响0人  问问你是谁

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)
上一篇 下一篇

猜你喜欢

热点阅读