swift 。从 Int 获取 Int 的最佳方式?

标签 swift option-type

我刚开始学习 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/

相关文章:

ios - swift 无法将按钮动态添加到 ScrollView

ios - 如何将带有 Storyboard和 xib 的 swift 项目转换为自定义 sdk/框架

swift - 在转移到 homeView 之前通过 Alamofire 获取用户数据

ios - 二进制拒绝 IOS,启动时崩溃

swift - 在 Swift 3.1 中从 init!() 隐式解包可选

generics - 初始化器作为 Swift 中转换为新类型的一种方式

ios - ios UI更新代码如何定义用于主调度

java - java 8 中的 Lambda 表达式(使用 java.util.Optional 在 HashMap 中进行空检查)

c++ - qmap 可选参数的默认值

ios - 我收到一条警告,将我的 OPTIONAL 值与非零值进行比较将始终返回 true