0

我是 Swift 新手,正在尝试学习可选值的概念。我的问题是,在之前的代码上下文中,是否有必要将变量 'possibleIntegerValue' 设置为 'optional Int(Int?)' 或者可以省略?符号并将 'possibleIntegerValue' 设置为 'Int' 类型?

如果我确实将类型从可选 Int 更改为 Int,它会产生什么样的影响?

let numberSymbol: Character = "三"  // Simplified Chinese for the number 3
var possibleIntegerValue: Int?
switch numberSymbol {
case "1", "١", "一", "๑":
    possibleIntegerValue = 1
case "2", "٢", "二", "๒":
    possibleIntegerValue = 2
case "3", "٣", "三", "๓":
    possibleIntegerValue = 3
case "4", "٤", "四", "๔":
    possibleIntegerValue = 4
default:
    break
}
if let integerValue = possibleIntegerValue {
    print("The integer value of \(numberSymbol) is \(integerValue).")
} else {
    print("An integer value could not be found for \(numberSymbol).")
}
4

1 回答 1

3

可选选项允许您遇到没有价值的情况。您有以下用于声明变量的选项:

var possibleIntegerValue: Int?      // Optional Int
var possibleIntegerValue: Int = 0   // Not optional but must *always* have a value
var possibleIntegerValue: Int!      // Implicitly unwrapped Optional Int

在上面的第三个选项中,您保证在possibleIntegerValue第一次使用时将具有一个值(或者您的应用程序将因未捕获的异常而崩溃)。

由于您的switch语句具有default不给出possibleIntegerValue值的 a ,因此使用 Optional Int 似乎是合适的。

于 2016-01-20T05:36:34.313 回答