麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Swift > 正文

詳解Swift中的數(shù)據(jù)類型類型轉(zhuǎn)換

2020-03-09 17:47:53
字體:
供稿:網(wǎng)友

一、類型檢查與轉(zhuǎn)換

在Objective-C和Java中,任何類型實例都可以通過強轉(zhuǎn)使編譯器認為它是另一種類型的實例,這么做其實是將所有的安全檢查工作都交給了開發(fā)者自己來做。先比之下,Swift中的Optional類型轉(zhuǎn)換就會比較安全與可靠。

Swift中使用is關鍵字來進行類型的檢查,其會返回一個布爾值true或者false來表明檢查是否成立,示例如下:

var str = "HS"if str is String {  print(str)}

Swift中有向上兼容與向下轉(zhuǎn)換的特性,就是說,一個父類類型的集合可以接收子類的實例,同樣,在使用這些實例變量時可以將其向下轉(zhuǎn)換為子類類型,示例如下:

//自定義一個類及其子類class MyClass {  var name:String?}class MySubClassOne: MyClass {  var count:Int?}class MySubClassTwo: MyClass {  var isBiger:Bool?}//創(chuàng)建3個實例var obj1 = MyClass()obj1.name = "HS"var obj2 = MySubClassOne()obj2.count = 100var obj3 = MySubClassTwo()obj3.isBiger=true//將實例存放在其公共父類類型的數(shù)組集合中var array:[MyClass] = [obj1,obj2,obj3]//進行遍歷for var i in 0..<array.count {  var obj = array[i]  if obj is MySubClassOne {    print((obj as! MySubClassOne).count!)    continue  }  if obj is MySubClassTwo {    print((obj as! MySubClassTwo).isBiger!)    continue  }  if obj is MyClass {    print(obj.name!)  }}

有一點需要注意,在進行類型轉(zhuǎn)換時,可以使用as!或者as?來進行,as!是一種強制轉(zhuǎn)換方法,它在開發(fā)者確定類型無誤是使用,如果用as!轉(zhuǎn)換的類型有誤,則會出現(xiàn)運行時錯誤。as?是Optional類型轉(zhuǎn)換,如果轉(zhuǎn)換失敗,則會返回nil。

二、Any和AnyObject類型

在Objective-C中,常常使用id來表示引用類型的泛型,Swift中的AnyObject與之類似。示例如下:

//進行遍歷for var i in 0..<array.count {  var obj = array[i]  if obj is MySubClassOne {    print((obj as! MySubClassOne).count!)    continue  }  if obj is MySubClassTwo {    print((obj as! MySubClassTwo).isBiger!)    continue  }  if obj is MyClass {    print((obj as! MyClass).name!)  }}

Any類型則比AnyOject類型更加強大,其可以混合值類型和引用類型一起工作,示例如下:

var anyArray:[Any] = [100,"HS",obj1,obj2,false,(1.1),obj3,{()->() in print("Closures")}]

上面示例的數(shù)組中包含了整型,字符串類型,引用類型,布爾類型和閉包。

 


注:相關教程知識閱讀請移步到swift教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: www久久艹 | 亚洲午夜影院在线观看 | 4p嗯啊巨肉寝室调教男男视频 | 国产羞羞视频在线免费观看 | v11av在线播放 | 91精品国产综合久久久动漫日韩 | 久久精品视频日本 | 国产一区二区三区在线观看视频 | 国产成人在线网址 | 欧美精品免费一区二区三区 | 欧美一级特黄特色大片免费 | 免费看成年人视频在线 | 成人一区三区 | 欧美精品成人一区二区在线观看 | 精品一区二区久久久久久久网精 | va视频在线 | 久久不射电影网 | 欧美在线观看视频一区 | 欧美大逼网 | 亚洲片在线观看 | xxxx18韩国护士hd老师 | 久久久久国 | 成片免费观看视频大全 | 777午夜精品视频在线播放 | 欧美成人午夜精品久久久 | 黄色av免费网站 | 成码无人av片在线观看网站 | 久草导航 | 国产精品视频免费在线观看 | 午夜在线成人 | 日本在线一区二区 | 毛片免费一区二区三区 | 中文字幕免费一区 | 最新黄色av | 午夜国产在线 | 99精美视频 | 视频久久免费 | 亚洲一级成人 | 午夜天堂在线视频 | 麻豆视频在线免费观看 | 99热99精品|