Swift文件Chapter 18 型別轉換
阿新 • • 發佈:2022-01-24
型別轉換可以判斷例項的型別。
如果將多個具有同一個父類的例項初始化成一個數組,那麼陣列的型別將會被推斷為[father's type]
,陣列每一個元素也都是父類型別,即使他們是使用子類宣告的。
型別檢查
型別檢查操作符is
關鍵字可以檢查一個例項是否屬於特定的子型別。如果屬於,那麼返回true
,否則返回false
。
型別轉換
我們使用型別轉換符as?
或者as!
進行向下轉換。
as?
:如果可以轉換成功,那麼返回轉換結果;如果不可以轉換成功,那麼返回nil
;as!
:會進行強制的解包,當轉換一個不正確的型別的時候,會觸發執行時錯誤。
型別轉換沒有改變型別的值,根本的例項保持不變。
Any
和AnyObject
的例項轉換
Any
表示任何型別,包括函式型別;AnyObject
表示任何型別的例項。
Any
陣列可以混合不同的資料型別一起工作。
Any
中陣列可以包含可選型別。Swift在使用Any
表示可選型別的時候,會彈出警告。如果想使用Any
承載可選值,可以使用as Any
進行顯式的轉換。