你可以在属性,方法,或者类型声明前,添加访问修饰符的关键字。
在BasicAccount添加访问控制的修饰符 private(set) 限制对balance的访问。
private(set) var balance: Dollars
上面的访问修饰符在属性声明的前边,并在括号内有一个set。这改变了Swift隐式创建的Setter的访问级别。在这个例子中balance的Setter是私有的。
你会发现,你的代码无效了。
QQ20180713-131715@2x.png
给属性添加 private(set) 关键字后,使用上面代码无法访问该属性。
这显示了访问修饰符的好处:访问仅限于需要或应该具有访问权限的代码,限制不需要访问权限的代码。实际上,访问控制帮助你,使你在定义所需实现的行为、属性、方法或类型时控制代码的可访问接口。
上面示例中使用的私有修饰符是Swift中可用的几种访问修饰符之一:
•private:只在同一源文件中该类型上的所有嵌套类型和扩展进行访问。
•fileprivate:可从定义源文件的任何地方访问。
•internal:可从定义它的模块中的任何位置访问。这是默认的访问级别。
•public:可从定义该模块的模块内的任何位置访问,以及导入该模块的其他软件模块。但其他模块中不可以被override和继承,而在模块内可以被override和继承。
•open:与public相同,但可以被其他模块中的代码override和继承。
网友评论