1. 程式人生 > >swift中as和is關鍵字

swift中as和is關鍵字

is操作符:
若一個類屬於另一個類的子類,則會返回true,否則返回false。
這裡寫圖片描述
as操作符:
某型別的一個常量或變數可能在幕後實際上屬於一個子類。當確定是這種情況時,你可以嘗試向下轉到它的子型別,用型別轉換操作符(as? 或 as!)。
因為向下轉型可能會失敗,型別轉型操作符帶有兩種不同形式。條件形式as? 返回一個你試圖向下轉成的型別的可選值。強制形式 as! 把試圖向下轉型和強制解包(轉換結果結合為一個操作。
當你不確定向下轉型可以成功時,用型別轉換的條件形式(as?)。條件形式的型別轉換總是返回一個可選值,並且若下轉是不可能的,可選值將是 nil。這使你能夠檢查向下轉型是否成功。
只有你可以確定向下轉型一定會成功

時,才使用強制形式(as!)。當你試圖向下轉型為一個不正確的型別時,強制形式的型別轉換會觸發一個執行時錯誤
as轉換的可選繫結:
if let movie = item as? Movie {
print(“Movie: ‘(movie.name)’, dir. (movie.director)”)
}
解讀:
“嘗試將 item 轉為 Movie 型別。若成功,設定一個新的臨時常量 movie 來儲存返回的可選 Movie 中的值”
若向下轉型成功,然後 movie 的屬性將用於列印一個 Movie 例項的描述,包括它的導演的名字 director。