在下面的示例中,是否有更好的方法来对 DEF 进行赋值?我想将类型 A 转换为类型 B,但仍尽可能保留 nil 可能性。
然而,似乎找不到更好的方法来做到这一点。有什么建议吗?
class ABC {
var DEF: Int?
func X (someValue: Int8?) {
DEF = someValue != nil ? Int(someValue) : nil
}
}
最佳答案
swift 1:
class ABC {
var DEF: Int?
func X (someValue: Int8?) {
DEF = someValue.map{Int($0)}
}
}
swift 2:
class ABC {
var DEF: Int?
func X (someValue: Int8?) {
DEF = someValue.map(Int.init)
}
}
map()
接受一个可选的,解包它,然后应用一个函数给它。如果可选解析为 nil,map()
返回 nil。
关于swift - 带有 let 的三元语法更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31246404/