我是新来的.刚刚开始学习Swift,当我谈到可选项的主题时,我开始想知道未初始化变量的默认值是什么.
在Java中,'int'被初始化为0.在C中,它获得垃圾值.那么Swift是什么?为了更精确一点,当我写"var x:Int"时,存储在x中的是什么?
另外,如果未初始化的对象"var c:UIColor"不能指向nil,它指向什么?
如果你声明一个这样的变量
var color: UIColor
Run Code Online (Sandbox Code Playgroud)
变量的状态是Uninitalized.这意味着编译器在初始化之前不允许您读取它.
print(color)
>> error: variable 'color' used before being initialized
Run Code Online (Sandbox Code Playgroud)
有趣的是,编译器足够聪明,可以检查代码的所有分支是否在使用之前初始化变量.
例如,此代码将产生错误,因为编译器无法保证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
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您将变量声明为可选
var color: UIColor?
Run Code Online (Sandbox Code Playgroud)
它被初始化了 nil
print(color)
// nil
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3417 次 |
| 最近记录: |