swift中as和is關鍵字

2021-07-28 19:45:41 字數 837 閱讀 8740

is操作符:

若乙個類屬於另乙個類的子類,則會返回true,否則返回false。

as操作符:

某型別的乙個常量或變數可能在幕後實際上屬於乙個子類。當確定是這種情況時,你可以嘗試向下轉到它的子型別,用型別轉換操作符(as? 或 as!)。

因為向下轉型可能會失敗,型別轉型操作符帶有兩種不同形式。條件形式as? 返回乙個你試圖向下轉成的型別的可選值。強制形式 as! 把試圖向下轉型和強制解包**換結果結合為乙個操作。

當你不確定向下轉型可以成功時,用型別轉換的條件形式(as?)。條件形式的型別轉換總是返回乙個可選值,並且若下轉是不可能的,可選值將是 nil。這使你能夠檢查向下轉型是否成功。

只有你可以確定向下轉型一定會成功時,才使用強制形式(as!)。當你試圖向下轉型為乙個不正確的型別時,強制形式的型別轉換會觸發乙個執行時錯誤

as轉換的可選繫結:

if let movie = item as? movie

解讀:

「嘗試將 item 轉為 movie 型別。若成功,設定乙個新的臨時常量 movie 來儲存返回的可選 movie 中的值」

若向下轉型成功,然後 movie 的屬性將用於列印乙個 movie 例項的描述,包括它的導演的名字 director。

Swift中的訪問控制關鍵字

訪問控制的目的在於控制其他模組或者原始檔訪問自己的內部檔案。你可以明確地給單個型別 類 結構體 列舉 設定訪問級別,也可以給這些型別的屬性 函式 初始化方法 基本型別 下標索引等設定訪問級別。訪問級別 定義public 可以訪問自己模組中原始檔裡的任何實體,別人也可以通過引入該模組來訪問原始檔裡的所...

swift3 0 中inout關鍵字

swift有兩種引數傳遞方式 1.值傳遞 值傳遞的是引數的乙個副本,這樣在呼叫引數的過程中不會影響原始資料。2.指標傳遞 指標傳遞把引數本身引用 記憶體位址 傳遞過去,在呼叫的過程會影響原始資料。在swift眾多資料型別中,只有class是指標傳遞,其餘的如int,float,bool,charac...

swift之mutating關鍵字

原文 在swift中,包含三種型別 type structure,enumeration,class 其中structure和enumeration是值型別 value type class是引用型別 reference type 但是與objective c不同的是,structure和enume...