[Swift]學(xué)習(xí)筆記--類型檢查與轉(zhuǎn)換

首先我們定義幾個(gè)這樣的類型:

class People {
    
}

class Man: People {
    
}

class Woman: People {
    
}

這里沒有設(shè)置任何屬性和方法,只是驗(yàn)證各個(gè)元素的類型,然后定義一個(gè)數(shù)組:

let items: [People] = [Man.init(),Woman.init(),Man.init(),Woman.init(),Man.init(),Woman.init()]

1. 類型檢查關(guān)鍵字: is

需要判斷的對(duì)象 is 需要判斷的類型

使用非常簡單,例如這里判斷上面的數(shù)組items[0]的類型:

items[0] is Man
items[0] is Woman

結(jié)果:

類型判斷 is

2. 類型轉(zhuǎn)換關(guān)鍵字: as

類型轉(zhuǎn)換一般是將披著父類外衣的子類對(duì)象轉(zhuǎn)換為實(shí)際的子類,即往下轉(zhuǎn)換

2.1. as?

如果不能保證,類型轉(zhuǎn)換一定成功,可使用as?關(guān)鍵字:

類型轉(zhuǎn)換as?

需要注意的是這里的類型轉(zhuǎn)換是嘗試將元素轉(zhuǎn)換為指定類型,成功,則轉(zhuǎn)換為指定類型的可選型(即: 這里的man是Man的可選型),失敗,則賦值nil(這里的woman為nil)

2.2. as!

如果確定,待轉(zhuǎn)換的對(duì)象一定是某個(gè)類型,可使用as!進(jìn)行轉(zhuǎn)換:

類型轉(zhuǎn)換 as!

當(dāng)然,如果不是要轉(zhuǎn)換的類型,就會(huì)編譯報(bào)錯(cuò):

類型轉(zhuǎn)換as!

所以,在使用as!時(shí),一定要保證所轉(zhuǎn)換的元素一定是要轉(zhuǎn)換的類型,不然,就會(huì)報(bào)錯(cuò);如果不能確定,那就使用as?吧.

檢查對(duì)象是否遵循某協(xié)議

is關(guān)鍵字還可以用于檢查某對(duì)象是否遵循了某協(xié)議,用法和是否是某類型一樣,只不過is后面跟的是協(xié)議名稱,不再是類名:

某對(duì)象 is 某協(xié)議

同理,使用as關(guān)鍵字,可以將對(duì)象轉(zhuǎn)換為遵守某子協(xié)議,用法和類型轉(zhuǎn)換類似

與Objective-C對(duì)象的轉(zhuǎn)換

Swift中的類可以轉(zhuǎn)換為OC的相應(yīng)類,例如String轉(zhuǎn)換為NSString:

String轉(zhuǎn)換為NSString
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 132.轉(zhuǎn)換錯(cuò)誤成可選值 通過轉(zhuǎn)換錯(cuò)誤成一個(gè)可選值,你可以使用 try? 來處理錯(cuò)誤。當(dāng)執(zhí)行try?表達(dá)式時(shí),如果...
    無灃閱讀 1,421評(píng)論 0 3
  • 1、范型范型所解決的問題 函數(shù)、方法、類型:類,結(jié)構(gòu)體,枚舉,元組類型,協(xié)議參數(shù),返回值,成員函數(shù)參數(shù),成員屬性類...
    我是小胡胡123閱讀 941評(píng)論 0 1
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,613評(píng)論 18 399
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,169評(píng)論 1 10
  • 十、白蓮圣教 且說顧笙將那白衣人的身法與陳興義一講,卻看陳興義面色由驚變?yōu)檎?,而后半晌無語,似在回憶,又像在思索。...
    燈下一壺酒閱讀 299評(píng)論 0 5

友情鏈接更多精彩內(nèi)容