swift中的nil与强解析
nil
你可以给可选变量赋值为nil,表示它没有值:
var a: Int? = 1024
a = nil
注意,不能将nil赋值给一个非可选的常量和变量。因此,如果你的代码中有常量或变量需要处理值缺省的情况,要把它们声明成对应的可选类型。
如果你声明一个可选常量或变量,但是没有赋值,它会被自动设置为nil。
var str: String?
注意:
swift中的nil和OC中的nil并不一样。在OC中是一个指向不存在对象的指针。在Swift中,nil不是指针——它是一个确定的值,用来表示值的缺失。任何类型的可选状态都可以被设置为nil,不只是对象类型。
if语句以及强制类型解析
你可以使用if语句和nil来判断一个可选值是否包含值。如果可选类型有值,它将不等于nil:
var convertedNumber: Int? = 3
if convertedNumber != nil {
print("convertedNumber contains some integer value.")
}
// 输出“convertedNumber contains some integer value.”
当你确定可选类型包含值时,你可以在名字后加感叹号(!)来获取值。这被称为可选值的强制类型解析(forced unwrapping)。
var convertedNumber: Int? = 3
if convertedNumber != nil {
print("convertedNumber has an integer value of \(convertedNumber!).")
}
// 输出“convertedNumber has an integer value of 3.”
原编辑时间 2020-11-24 10:32
个性签名:时间会解决一切