Swift基础知识"!" &安培; ""

时间:2015-05-20 04:11:23

标签: swift

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

1 个答案:

答案 0 :(得分:1)

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

如果它有值,你必须打开它,如果它包含一个值,你可以使用nil coalescing运算符(??)打开一个可选项,如果它是nil,则返回一个默认值。例如:

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