当我突然学习时,我想知道自己: 为什么我们必须为全局(甚至超出类范围)变量提供初始值,但我们不必像这样对局部变量执行相同的步骤?有什么理由吗?
if importRequired {
let deleteObjectCount: Int
}
最佳答案
这是允许的,因为您的代码中从未使用过 deleteObjectCount
。并且——这是与全局变量的区别——编译器可以检查这一事实。
你甚至可以这样做:
let importRequired = true
if importRequired {
let deleteObjectCount: Int
deleteObjectCount = 5
print (deleteObjectCount)
}
(例如修改常量 let
变量)因为编译器会检查常量是否只被写入一次,而这是在之前完成的em> 阅读它的值(value)。
相比之下,全局变量必须直接初始化,否则编译器无法保证它们在被初始化之前已经如此(因为可以从程序中的任何地方访问它们)。
关于ios - 为什么我们不需要为局部变量提供初始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47673194/