//就是可空类型 var index: Int? = nil //一致的定义方式: var message: Optional<String> = nil //可以理解为一种装箱操作(对String类型进行一个封装) var message: String? = nil /* message = "123"*/ //!号可以理解为拆箱操作,对之前封装的String对象解除封装,并将其赋予String变量 //前提: 拆箱后(接触封装)的变量不能事nil,否则会出错 if message != nil { var newMessage: String = message! println(newMessage) } else { println("Message is nil") }