我刚刚开始学习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")"
可选的意思究竟是什么以及如何解决这个问题所以它只是显示" Square"?
答案 0 :(得分:1)
变量type
的类型为String optional(String?)。它可以有值或只是nil。
如果它有值,你必须打开它,如果它包含一个值,你可以使用nil coalescing运算符(??)打开一个可选项,如果它是nil,则返回一个默认值。例如:
let unknownType = "Unknown"
println("Largest: \(largest) Kind: \(type ?? unknownType)") // Largest: 25 Kind: Square