My Octopress Blog

A blogging framework for hackers.

Swift中optional

关于optional,最需要说的是为什么需要optional,比如说在objctive-c中就没有,也是可以表示一个不存在的对象的。只需要用NULL就可以了。但是如何表示一个不存在的value类型的变量呢?比如一个不存在的struture?objective-c就没有太好的办法了,一般来说是用一个特殊值NSNotFound来表示。不过swift可以让一切不存在的变量都为nil,这就是optional的目的

关于optional,剩下的只是swift里面有关的特殊术语,搞清楚还是很有必要的

Force Unwrapping

Force Unwarpping指的是把optional对象转化成一个非空的对象

Optional Binding

其基本形式是

if let constantName = someOptional

while let constantName = someOptional

Implicity Unwrapped Optionals

一个optinal变量可以定义为implicity unwrapped optionals, 那么使用这个变量的时候就不再需要force unwrap, 一旦unwrap失败,程序会崩溃

var storyboardName : String! = "hello"