我以为我知道如何声明变量,直到我看到了这个示例。

在该示例中,声明了一个常量。

let timeOfDay: String

我以为,除非您将其声明为Optional,否则您不能在不对其进行初始化的情况下声明它。

当然,当我去打印常量时,程序会炸弹。编译器如何允许此操作?我把它输入了一个游乐场。

一个完整的例子:
let hourOfDay = 12
let timeOfDay: String
if hourOfDay < 6 {
    timeOfDay = "Early morning"
} else if hourOfDay < 12 {
    timeOfDay = "Morning"
} else if hourOfDay < 17 {
    timeOfDay = "Afternoon"
} else if hourOfDay < 20 {
    timeOfDay = "Evening"
} else if hourOfDay < 24 {
    timeOfDay = "Late evening"
} else {
    timeOfDay = "INVALID HOUR!"
}
print(timeOfDay)

最佳答案

编译器非常聪明,可以找出导致timeOfDay首次读取访问的每个可能的代码路径,实际上仅将其初始化一次。尝试忽略其中一项作业作为实验。

关于swift - Swift是否允许声明没有初始值的变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49336451/

10-09 02:32