在Swift中,执行此操作会导致编译错误:
// file1.swift
private let testVar = 2
// file2.swift
private let testVar = 3
特别是,其中一个声明将以“无效的testVar重新声明”突出显示。
该文档通常指出:
专用访问将实体的使用限制为自己定义的源文件。使用私有访问权限可以隐藏特定功能的实现细节。
在讨论原始值时,它说:
枚举定义中用于任何原始值或关联值的类型的访问级别必须至少与枚举的访问级别一样高。例如,您不能将私有类型用作具有内部访问级别的枚举的原始值类型。
关于常量:
常量,变量或属性不能比其类型更公开。例如,编写具有私有类型的公共属性是无效的。同样,下标不能比其索引类型或返回类型更公开。
对我来说,这些摘录都没有建议您不要private
在单独的文件中使用相同名称的变量。
确实,第一句话对我说,你应该能够;否则,您将泄漏实现细节(即,您使用了名为的变量testVar
)。
在提交错误报告之前,我想检查一下我是否理解过语义。应该可以吗?
Xcode 6.1 beta 2中已修复此问题:
Xcode 6.1 Beta中解决的问题
斯威夫特语言
如果在同一模块内的不同文件中定义了相同名称和相同类型的私有实体,则不会再发生冲突。(17632175)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句