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

时间:2016-02-08 17:07:53

标签: swift optional

我是新来的。刚开始学习Swift,当我谈到可选项的主题时,我开始想知道未初始化变量的默认值是什么。

在Java中,' int'初始化为0.在C中,它获取垃圾值。那么Swift有什么用?为了更准确一点,当我写" var x:Int"时,存储在x中的是什么。 ?

此外,如果未初始化的对象" var c:UIColor"不能指向零,它指的是什么?

2 个答案:

答案 0 :(得分:6)

非选项

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

var color: UIColor

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

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

更多

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

E.g。此代码将产生错误,因为编译器无法保证在color执行之前初始化print(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

答案 1 :(得分:0)

非可选变量没有默认值。

无论如何,你无法在Swift中使用未初始化的变量。编译器不允许你。