Optional的定义
Optional也是Objective-C没有的数据类型,是苹果引入到Swift语言中的全新类型,它的特点就和它的名字一样:可以有值,也可以没有值,当它没有值时,就是nil。此外,Swift的nil也和Objective-C有些不一样,在Objective-C中,只有对象才能为nil,而在Swift里,当基础类型(整形、浮点、布尔等)没有值时,也是nil,而不是一个初始值,没有初始值的值,是不能使用的,这就产生了Optional类型。定义一个Optional的值很容易,只需要在类型后面加上问号(?)就行了,如:
一个Optional值和非Optional值的区别就在于:Optional值未经初始化虽然为nil,但普通变量连nil都没有:
//@H_502_9@未被初始化,但是是一个Optional@H_502_9@类型,为nil@H_502_9@
String@H_502_9@?
str@H_502_9@@H_502_9@//输出@H_502_9@nil
//@H_502_9@未被初始化,也不是Optional@H_502_9@类型