Swift學習筆記系列 (24)訪問控制

2021-07-04 19:33:19 字數 1634 閱讀 8901

tags: swift 學習筆記

單個的類、結構體和列舉

屬於1的屬性、方法、構造方法和下標

協議的適用範圍

訪問控制的基礎

一系列**,xcode中的乙個構造目標

單獨的源**檔案

本模組的任意原始檔內可以訪問

匯入所在模組的其他模組的原始檔可以訪問

預設的訪問級別

同一模組的任意源**中都可以訪問

同一原始檔可以訪問

衍生物的訪問級別不能高於母體。

internal

毫無疑問,宣告為public的測試物件可以被測試**訪問;要想訪問internal的實體,可以在測試模組的匯入宣告處用@testable標記。

使用場景

預設限制

選項自定義型別

宣告為private的型別,其成員預設是private的。

宣告為public或internal的型別,其成員預設是internal的

元組 元組的訪問級別要取元組成員訪問級別最低

函式 為函式引數型別和函式返回值型別的最低者

列舉 列舉分支

和列舉型別訪問級別一致

可以指定訪問級別

列舉初始值和組合值

不能低於列舉型別的訪問級別

巢狀型別

同定製型別

子型別子型別自身

子型別的訪問級別不能高於超類

子型別重寫

重寫可以提高訪問級別

常量、變數屬性和下標

自身 不能高於所處型別和自身型別的訪問級別

getter和setter

所屬於物件的訪問級別

可以單獨設定setter為較低的訪問級別

構造方法

自定義構造方法

不能高於它要構造的型別的訪問級別

必要構造方法訪問級別和所在類的訪問級別一致

預設構造方法

和訪問型別一致

public型別的構造方法預設為internal

結構體的預設成員構造方法

internal,一旦有儲存舒適是private則為private

可以指定為public

協議 協議自身

協議成員的訪問型別和協議的訪問型別一致

協議繼承

新協議最多具有和被繼承協議相同的訪問級別

協議實現

型別實現乙個協議的訪問級別,要取型別和協議的訪問級別最低者,協議要求的每乙個部分不能低於這個訪問級別。

型別可以用用低於自身的訪問級別實現乙個協議

擴充套件 擴充套件自身

新增的成員,具有擴充套件型別成員的預設訪問級別

給擴充套件指定明確的訪問級別,同時也是指定了擴充套件內容的訪問級別

可以給單個成員指定訪問級別

用擴充套件實現協議

協議實現的預設訪問級別和協議的訪問級別一致

型別實現乙個協議的訪問級別,要取型別和協議的訪問級別最低者,協議要求的每乙個部分不能低於這個訪問級別。

新增對協議的實現,不能指定訪問級別

泛型 乙個泛型型別或者泛型方法的訪問級別要在 其自身的訪問級別與其型別引數訪問級別中取最低的

型別別名/聯合型別

型別別名的訪問級別要等於或者低於它所替代型別的訪問級別

Swift學習筆記系列 (16)可選鏈

tags swift 學習筆記 可選鏈提供的是一種方便訪問可選型別值的途徑。可選鏈可以替代強制拆包的寫法,而且寫法可以更簡潔。可選鏈可以多級,直達你想要訪問的內容。可選鏈可以方法屬性 下標和方法。可選鏈返回的必定是乙個可選型別,返回nil則證明這條可選鏈中的某個環節是斷掉 其中有nil 的。用法 簡...

Swift學習筆記系列 (23)泛型

tags swift 學習筆記 感慨一下 泛型這一章很亂,很零碎,很難總結。避免重複 增加靈活性 所有型別 泛型是另外一種引數,引數表示的是型別,泛型小可以用在函式上,大可用在型別定義上。這裡 型別 不包括協議,協議定義不能直接採用泛型,可以採用關聯型別。函式引數的型別也是引數的函式叫做泛型函式。這...

Swift學習筆記系列 (10)方法

tags swift 學習筆記 類 結構體和列舉都可以定義方法,而oc中只有類可以這樣做。方法分為 例項方法和型別方法。前者屬於型別的乙個例項,後者屬於型別。語法和函式一樣。預設情況下,swift方法的第乙個引數名之作為本地名字使用,但是後面的引數名同時作為內部和外部引數名使用。沒必要在給第乙個引數...