我是Swift的新手,正在尝试学习可选值的概念。我的问题是,在之前的代码的上下文中,有必要设置变量" possibleIntegerValue'到'可选的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).")
}
答案 0 :(得分:3)
Optionals允许你有一个没有价值的案例。您可以使用以下选项声明变量:
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
一个值,因此使用Optional Int似乎是合适的。