gpt4 book ai didi

Swift 反向 nil-coalescenting 运算符?

转载 作者:行者123 更新时间:2023-12-03 09:24:28 26 4
gpt4 key购买 nike

Swift 有 nil 合并运算符 a ?? b这是 a != nil ? a : b 的简写. Swift 是否有相反的运算符,即 a == nil ? a : b 的简写?或者换句话说,a == nil ? nil : b ?

我会用它来将一个可选值映射到其他东西,就像这样:

let x = dict["key"] != nil ? mapValue(dict["key"]) : nil
// ideally: let x = dict["key"] ¿¿ mapValue(dict["key"])

最佳答案

dict["key"]返回一个可选值,并且您希望将该值映射到另一个值(如果存在),或者获取 nil除此以外。这正是 Optional.map() 是为了:

Evaluates the given closure when this Optional instance is not nil, passing the unwrapped value as a parameter.



在你的情况下:
let x = dict["key"].map { mapValue($0) }

或者干脆
let x = dict["key"].map(mapValue)

这也有优势
let x = dict["key"] != nil ? mapValue(dict["key"]) : nil
// or the hypothetical
let x = dict["key"] ¿¿ mapValue(dict["key"])

那个 dict["key"]只评估一次,而不是两次。

关于Swift 反向 nil-coalescenting 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62020506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com