我以为我知道如何声明变量,直到我看到了这个示例。
在该示例中,声明了一个常量。
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/