可选类型(optionals)

使用可选类型(optionals)来处理 值可能缺失的情况:可选类型表示:

.有值,等于x

或者

.没有值

let possibleNumber = "123"

let convertedNumber = (int)possibleNumber

convertedNumber 被推测为int? 或 类型为 "optional int" 

上面的代码是将String 转化成Int 

你可以给变量赋值nil,来表示他没有值:

var serverResponseCode : Int? = 404

serverResponseCode =  nil

注意:nil不能用于非可选的常量和变量。如果你的代码中有常量或者变量需要处理值缺失的情况,请把他们声明成对应的可选类型

如果你声明一个可选的常量或变量,但是没有赋值,他们会被自动设置为nil

var sureAnswer:String?

//sureAnswer 被自动设置为nil



if语句及强制解析

你可以使用if语句和nil比较来判断一个可选值,是否包含值。你可以使用“相等”(==)或“不等(!=)”来执行比较

如果可选类型有值,它将不等于nil

if converNumber != nil {

print("convertedNumber contains some integer integer value")

}

当你确定可选类型确实有包含值之后,你可以在可选的名字后加“感叹号(!)”来获取值,这个感叹号表示“我知道这个可选值有值。请使用它” 这被称为可选值的强制解析(forced unwrapping);

注意:

使用“感叹号(!)”来获取一个不存在的可选值会导致运行时错误。使用!来强制解析前,一定要确认可选值有一个非nil的值

你可能感兴趣的:(可选类型(optionals))