Swift 中的訪問控制

weixin_33936401發表於2018-04-09

訪問順序:

訪問許可權範圍依次為:private < fileprivate < internal < public < open

private

private 訪問級別所修飾的屬性或者方法只能在當前類裡訪問。

fileprivate

fileprivate 訪問級別所修飾的屬性或者方法在當前的 Swift 原始檔裡可以訪問。

internal(預設訪問級別,internal 修飾符可寫可不寫)

internal 訪問級別所修飾的屬性或方法在原始碼所在的整個模組都可以訪問。
如果是框架或者庫程式碼,則在整個框架內部都可以訪問,框架由外部程式碼所引用時,則不可以訪問。
如果是 App 程式碼,也是在整個 App 程式碼,也是在整個 App 內部可以訪問。

public

public 修飾的屬性或方法可以被任何域訪問。但其他 module 中不可以被 override 和繼承,而在 module 內可以被override 和繼承。

open

可以被任何域使用,包括 override 和繼承。

相關文章