我刚开始学习 Swift,但我仍然对 Optionals 感到困惑。我想知道,最好的方法是什么,或者我应该遵循什么方法?
let arrayOptional : [Int?] = [25, 30, nil, 50, nil]
// Optional Binding
var sum = 0
for i in arrayOptional {
if let temp = i {
sum += temp
}
}
sum = 0
// Forced Unwrapping
for i in arrayOptional {
if i != nil {
sum += i!
}
}
sum = 0
// ?? operator
for i in arrayOptional {
sum += i ?? 0
}
那么使用一种方法比使用另一种方法有什么好处吗?
最佳答案
你可以做什么,它是使用compactMap
函数,所以你将从arrayOptional
中获取非零值,然后使用reduce
函数得到结果
sum = arrayOptional.compactMap{ $0 }.reduce(0, +)
关于 swift 。从 Int 获取 Int 的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53117521/