美文网首页
Optional Map

Optional Map

作者: TomatosX | 来源:发表于2017-07-25 12:23 被阅读16次

在数组中,我们可以用map关键字,将一个数组进行计算,从而生成一个新的数组。在Swift标准库中声明如下:

public func map<T>(_ transform: (Element) throws -> T) rethrows -> [T]

现在有个需求,要将某个 Int? 乘 2。一个合理的策略是如果这个 Int? 有值的话,就取出值进行乘 2 的操作,如果是 nil 的话就直接将 nil 赋给结果。依照这个策略,我们可以写出如下代码:

let num: Int? = 3
var mResult: Int?
if let realNum = num {
    mResult = realNum * 2
} else {
    mResult = nil
}
print(mResult) // 输出Optional(6)

Optional也有一个map方法,那么我们就可以将上面的代码用更优雅的方式书写。

标准库中的声明如下:

public func map<U>(_ transform: (Wrapped) throws -> U) rethrows -> U?

修改如下:

let num: Int? = 3
let numResult = num.map { return $0 * 2 }
print(numResult) // 输出Optional(6)

有了这个方法,上面的代码就可以大大的简化。

相关文章

网友评论

      本文标题:Optional Map

      本文链接:https://www.haomeiwen.com/subject/dkewkxtx.html