我才刚刚开始学习敏捷,我已经看到了不同的变量!或者 ?附加到末尾意味着它们是否可选。
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”(平方)?
变量type
的类型为String optional(String?)。它可以有值或为nil。
如果它具有值,则必须将其解包;如果包含值,则可以使用nil合并运算符(??)解开一个可选值;如果它为nil,则返回默认值。例如:
let unknownType = "Unknown"
println("Largest: \(largest) Kind: \(type ?? unknownType)") // Largest: 25 Kind: Square
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句