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

posted @ 2021-11-24 14:21  Rogn  阅读(556)  评论(0编辑  收藏  举报