Swift基础知识“!” &“?”

克里斯

我才刚刚开始学习敏捷,我已经看到了不同的变量!或者 ?附加到末尾意味着它们是否可选。

let interestingNumbers = [
     "Prime": [2, 3, 5, 7, 11, 13],
     "Fibonacci": [ 1, 1, 2, 3, 5, 8],
     "Square": [ 1, 4, 9, 16, 25]
]
    var largest = 0
    var type: String?
for (kind, numbers) in interestingNumbers {
    for number in numbers {
        if number>largest {
        largest = number
            type = kind
        }
    }
}
println("Largest: \(largest) Kind: \(type)")

我得到的结果是“最大:25种:可选(“平方”)“

可选的确切含义是什么?我如何解决此问题,使其仅显示“ Square”(平方)?

tounaobun

变量type的类型为String optional(String?)。它可以有值或为nil。

如果它具有值,则必须将其解包;如果包含值,则可以使用nil合并运算符(??)解开一个可选值;如果它为nil,则返回默认值。例如:

let unknownType = "Unknown"
println("Largest: \(largest) Kind: \(type ?? unknownType)")  // Largest: 25 Kind: Square

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章