成都网站建设设计

将想法与焦点和您一起共享

Swift2.0(4)可选类型-创新互联

什么是可选类型?

   可以被赋予nil值的类型,在类型后添加问号(?)

     如Int类型的值为整型数,但不太好表示“空”的含义,Int?可以赋值为整型数和nil值

     如:

     var age:Int? = 3

     var name:String? = nil

使用可选类型

     print(age)   //Optional(3)

     print(age!)  //3

   !运算,用于解绑可选类型变量的值

   注意:如果age为nil,使用!解绑将使程序崩溃

   再如:

     var age1:Int? = 3

     var age2:Int;

     age2 = age1!

隐式解绑的可选类型

   定义变量时,将?替换成为!,如:

     var age:Int! = 3

     print(age)   //3

     print(age!)  //3

  • 可选链中的解绑

如:

     class Department {

       var no : Int = 0

       var name:String = "neuedu"

       var com:Company? = nil

     }

     class Company {

       var no : Int = 0

       var name : String? = "neusoft"

     }

     var dep = Department()

     print(dep.com!.name)

   dep.com使用!解绑时,如果为nil,程序会报错崩溃

   这种情况下,可以使用?代替!解绑,如果为nil,则整个表达式为nil,即:

     print(dep.com?.name) // nil

   可选链使用潜在的问题:使用了?解析可选链后,表达式返回的只能是可选类型

      如dep.com!.name? 想要返回的类型是String,但实际只能返回String?

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:Swift2.0(4)可选类型-创新互联
链接地址:http://chengdu.cdxwcx.cn/article/doephj.html