swift晋级之路 - optional类

      做oc开发也有差不多一年的时间了,最近事件不是特别紧,也是时候来学习一下swift了,虽然swift api和oc是一样的但是还是有好多语法上的区别,最近在看网易公开课上得斯坦福的ios开发课程也会持续更新一下课程内容

      optional类,也就是可选类型,optional是oc中没有的类型,是swift引进的一种全新的类型,他得特点是可以有值,也可以没有值,当它没有值的时候就是nil,swift的nil和oc中的也是不一样的,oc中只有对象才能为nil,而在swift中,当基础类型没有值的时候也是nil,而不是一个初始值,没有初始值就不能使用,这就产生了optional类型,optiona类和非optional类的区别就是:optional值未经初始化虽然为nil,但是普通变量连nil都没有: 

   

其实optional是一个枚举值

enum Optional<T> : Reflectable, NilLiteralConvertible {

    case None

    case Some(T)

    init()

    init(_ some: T)

 

    /// Haskell's fmap, which was mis-named

    func map<U>(f: (T) -> U) -> U?

    func getMirror() -> MirrorType

    static func convertFromNilLiteral() -> T?

}

当optional没有值的时候返回optional。None

posted @ 2015-10-25 21:50  繁星ll  阅读(196)  评论(0编辑  收藏  举报