Swift 为什么我可以在操场上设置私人场地
我有一个简单的Swift 为什么我可以在操场上设置私人场地,swift,swift2,Swift,Swift2,我有一个简单的车辆类,它有一个名为\u里程表的私有字段,然后,我有一个名为里程表的计算属性(它有setter和getter) 我认为,\u里程表应该不能设置,因为它是一个私人场地,但在操场上,它可以设置,为什么?以下是我的游戏规则: 如您所见,我创建了一个名为volvo的Vehicle实例。默认情况下,\u里程表是500,但我可以在volvo上直接将\u里程表设置为0,当打印出“里程表”时,它是0为什么我可以设置私有字段?Swiftprivate在语义上与其他OO语言略有不同,它对源文件是私有
车辆
类,它有一个名为\u里程表
的私有字段,然后,我有一个名为里程表
的计算属性(它有setter和getter)
我认为,\u里程表
应该不能设置,因为它是一个私人场地,但在操场上,它可以设置,为什么?以下是我的游戏规则:
如您所见,我创建了一个名为
volvo
的Vehicle
实例。默认情况下,\u里程表
是500,但我可以在volvo
上直接将\u里程表
设置为0,当打印出“里程表”时,它是0为什么我可以设置私有字段?Swiftprivate
在语义上与其他OO语言略有不同,它对源文件是私有的
在:
私有访问将实体的使用限制为其自己的定义
源文件。使用私有访问隐藏的实现细节
一个特定的功能
在Swift4中引入了一种新的访问控制:
fileprivate
,它现在具有您描述的属性private
现在可以在其他语言中正常工作