一尘不染

私人变量可以从班级外部访问

swift

这是在Playground中完成的,只是为了简化。

class MyPrivateVar
{
    private var priv: String?
}

var myInstance = MyPrivateVar()

myInstance.priv = "Something"

没有编译器警告。实际上,自动完成显示priv没有问题。我的理解是,在类{}的边界之外,我不应该看到私有的东西,func也不可以var

我想念什么吗?


阅读 164

收藏
2020-07-07

共1个答案

一尘不染

Swift中的访问修饰符与其他语言的实现方式不同。分为三个级别:

private:仅在 该特定文件 内可访问 __

internal:仅在模块(项目)中可访问

public:可从任何地方访问

除非另有标记,否则您编写的所有内容均为internal默认设置。

斯威夫特博客有一个关于访问控制后,当功能处于beta
4中引入和苹果的文档中有一章为好。

2020-07-07