Swift中現(xiàn)有的5個(gè)權(quán)限關(guān)鍵字: open public internal private
fileprivate
這5個(gè)關(guān)鍵字都可以用來(lái)修飾屬性和方法, 那么他們之間的具體區(qū)別是什么呢?
- open: 最高權(quán)限,可以被任何module和文件訪問(wèn)和繼承重寫, 比如引入的一個(gè)三方庫(kù)中, 有需要被本app使用的方法或者屬性, 一般都會(huì)被聲明為open.
- public: 可以被任何人訪問(wèn),但是在其他module中不可以被繼承和重寫,在當(dāng)前module內(nèi)可以.
- internal: 為默認(rèn)屬性, 可以省略不寫, 如果項(xiàng)目沒(méi)有進(jìn)行組件化開(kāi)發(fā),整個(gè)APP項(xiàng)目?jī)?nèi)都是可以訪問(wèn)的.
- private: 被private修飾的屬性和方法 ,只可以在該類下使用(extension可使用,因?yàn)槭峭?)
- fileprivate: fileprivate和private 想比較一下,區(qū)別一目了然,相同文件下是可以調(diào)用的,其他和private一樣.