Swift和C++,Java一样,也有访问控制的概念。通过访问权限的控制,我们可以对外隐藏内部的代码细节,防止修改。
Swift的访问控制是基于模块(modules)和源文件(source file)
Swift的模块概念是这样的:
1、一个App bundle,或者一个framework都可以看成一个独立的module。 你可以使用import来引入别的module到你的module中来。
当你将你的代码打包成一个framework,这个framework就是一个module。里面的所有的东西都是属于这个framework,无论你将这个framework引入到别的framework或app中。
2、一个源文件里面虽然可以定义多个类,但是建议一般一个源文件建立一个类。
Swift的访问权限有三个:
1、public 这个权限允许同一个module内部的所有源代码访问,同时允许其他引入了该module的module使用。总的来说就是全开放
2、internal 这个权限允许同一个module内部的所有源代码访问,不允许其他module使用。
3、private 这个权限仅允许同一个source file的代码访问。
Swift的默认访问权限是internal。
public是最高访问权限,而private是最低访问权限。
Swift的权限编程原则:
一、高权限的东西不能包含在低权限的东西里面。
举例:
1、说就是一个public的类型不能定义在一个声明为internal的类型里面。