$[timeformat('2017-11-27T00:22:57+08:00')]

定义

  • 当数据可能接收nil的时候,使用optional是比较合适的
  • 当非可选型被赋值为nil的时候 系统会崩溃
  • 当可选型被赋值为nil的时候 系统会首先判断值是否为nil,如果为nil 则会赋值nil;如果不为nil,那就正常操作。

Optional 可选型 写法

var sexy : String? = "boy"

强制解包

if sexy != nil {
    print("i am a \(String(describing: sexy))")
}else{
    print("none")
}

官方推荐解包方式

if let ksex = sexy {
    print("i am a \(ksex)")
}else{
    print("none")
}

隐式解包 定义时候后面跟着!就可以隐式解包

var sexy2 : String!
var sexy3 : String = sexy2 ?? "boy"//使用的时候不需要进行解包 并且可以通过 ?? 给变量赋一个默认值

使用Optional的变量 首先要解包

if...else
guard ... else{}