gpt4 book ai didi

swift - Swift 中未初始化变量/对象的默认值

转载 作者:行者123 更新时间:2023-12-05 08:57:12 24 4
gpt4 key购买 nike

我是新来的。刚开始学习Swift,谈到optionals这个话题的时候,我开始好奇一个未初始化变量的默认值是多少。

在 Java 中,“int”被初始化为 0。在 C 中,它获得垃圾值。那么 swift 是怎么回事?更准确地说,当我写“var x: Int”时,x 中存储了什么?

此外,如果一个未初始化的对象“var c: UIColor”不能指向 nil,它指向什么?

最佳答案

非可选

如果你像这样声明一个变量

var color: UIColor

变量的状态是未初始化。这意味着编译器不允许您在它初始化之前读取它。

print(color)
>> error: variable 'color' used before being initialized

更多

有趣的是,编译器足够聪明,可以在使用变量之前检查代码的所有分支是否都在初始化变量。

例如此代码将产生错误,因为编译器无法保证在执行 print(color) 之前初始化 color

var color: UIColor
let random = arc4random_uniform(10)
if random > 5 {
color = UIColor.redColor()
}
print(color)
// error: variable 'color' used before being initialized

可选项

另一方面,如果您将变量声明为可选变量

var color: UIColor?

它被初始化为nil

print(color)
// nil

关于swift - Swift 中未初始化变量/对象的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35275273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com