private:只能在当前源文件中使用的实体,称为私有实体,使用private级别,可以用作隐藏某些功能的实现细节
fileprite: 在swift3中。新增了一个fileprivate来显示的表明,这个元素的访问权限为文件内私有
public:可以访问自己模块或应用中源文件里的任何实体,别人也可以访问引入模块中源文件里的所有实体。通常情况下,某个接口或framework,作为内部结构使用时,你可以将其设置为public,可以被任何人访问。但其他module中不可以被override和继承,而在module内可以被override和继承。
open:可以被任何人使用,包括override和继承。
internal:可以访问自己模块或应用中源文件里的所有实体,但是别人不能访问该模块中源文件里的实体。通常情况下,某个接口 或 framework作为内部结构使用时,你可以将其设置为internal级别
final:final的问题在于在标记之后,在任何地方都不能override。
权限排序:
open > public > interal > fileprivate > private