码迷,mamicode.com
首页 > 编程语言 > 详细

swift晋级之路 - optional类

时间:2015-10-25 22:33:45      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

      做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

swift晋级之路 - optional类

标签:

原文地址:http://www.cnblogs.com/fanxinguu/p/4909725.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!