在Swift語言中,訪問修飾符有五種,分別為fileprivate,private,internal,public和open。
一、各個(gè)修飾符區(qū)別
1,private
private訪問級(jí)別所修飾的屬性或者方法只能在當(dāng)前類里訪問。
2,fileprivate
fileprivate訪問級(jí)別所修飾的屬性或者方法在當(dāng)前的Swift源文件里可以訪問。(比如上門樣例把private改成fileprivate就不會(huì)報(bào)錯(cuò)了)
3,internal(默認(rèn)訪問級(jí)別,internal修飾符可寫可不寫)
internal訪問級(jí)別所修飾的屬性或方法在源代碼所在的整個(gè)模塊都可以訪問。
如果是框架或者庫代碼,則在整個(gè)框架內(nèi)部都可以訪問,框架由外部代碼所引用時(shí),則不可以訪問。
如果是App代碼,也是在整個(gè)App代碼,也是在整個(gè)App內(nèi)部可以訪問。
4,public
可以被任何人訪問。但其他module中不可以被override和繼承,而在module內(nèi)可以被override和繼承。
5,open
可以被任何人使用,包括override和繼承。
二、5種修飾符訪問權(quán)限排序
從高到低排序如下:
open > public > interal > fileprivate > private