Swift Tips - 訪問控制(private & fileprivate & internal & public & open)

在 Swift 語言中,訪問修飾符有五種,分別爲 privatefileprivateinternalpublicopen

其中 fileprivateopen 是 Swift 3 新添加的。由於過去 Swift 對於訪問權限的控制,不是基於類的,而是基於文件的。這樣會有問題,所以 Swift 3 新增了兩個修飾符對原來的 privatepublic 進行細分。

下面分別說說各種修飾符的範圍&區別:

  1. privateClass級別
    private 訪問級別所修飾的 屬性 或者 方法 只能在 當前類 裏訪問。
    注意:Swift4 中,extension 裏也可以訪問 private 的屬性。

  2. fileprivateFile級別
    fileprivate 訪問級別所修飾的 屬性 或者 方法當前的 Swift 源文件 裏可以訪問。

  3. internalModule級別,Default,internal修飾符可寫可不寫)

    • internal 訪問級別所修飾的 屬性方法 在源代碼所在的 整個模塊 都可以訪問。
    • 如果是框架或者庫代碼,則在整個 框架內部 都可以訪問,框架由外部代碼所引用時,則不可以訪問。
    • 如果是 App 代碼,也是在 整個 App 代碼,也是在 整個 App 內部 可以訪問。
  4. public開放級別,但是有些限制
    可以被 任何人 訪問。
    ,其他 module 中不可以被 override & 繼承 ,而在 module 內可以被 override & 繼承

  5. open開放級別,無限制
    可以被 任何人 使用,包括 override & 繼承

總結,5種修飾符訪問權限排序如下:

open > public > interal > fileprivate > private

喜歡我的可以關注收藏我的個人博客:Ro.bber

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章