ios - 为什么我们不需要为局部变量提供初始值?

标签 ios swift

当我突然学习时,我想知道自己: 为什么我们必须为全局(甚至超出类范围)变量提供初始值,但我们不必像这样对局部变量执行相同的步骤?有什么理由吗?

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/

相关文章:

iphone - 带有HTML标签的XML字符串

ios - 如何显示在后台线程中执行的任务的进度 View

swift - 使用 Swiftsoup (Swift) 解析 HTML?

javascript - 如何使用cocos2d-js加载原生IOS xib?

ios - 容器 View 不会提升

ios - 如何将反射与 Core Data 和 Swift 结合使用

swift - 了解快速自动完成中的返回类型

Swift:执行 Segue 在展开可选值时抛出发现的 nil

swift - 如何在播放时获取标签中 AVAudioplayer 的当前时间

ios - 使用 FPC 在 iOS 上编程