您是否应该能够在具有相同名称的differnet文件中声明两个私有变量?

奶牛

在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

两个私有子类中的相同类型变量未被识别为相同

如何从两个不同的JS文件中获取具有相同名称的变量的每个值?

是否可以在单独的查询中存在两个具有相同名称的临时表

名称空间菜鸟问题:共享相同名称空间的两个cpp文件具有相同的变量

您是否应该能够从std :: optional <T>移到T具有非平凡的构造函数的地方?

使用查找从两个目录中删除具有相同名称的文件

Gradle允许zip存档中两个具有相同名称的文件

同一目录中的两个具有相同名称的文件

如何在原型文件中添加两个具有相同名称的方法

为什么Java的允许两个变量具有相同名称在同一范围内声明?

是否可以创建具有两个具有相同名称的属性的类型?

c可以声明两个具有相同名称,返回类型但参数不同的函数

如何在1个变量下打开两个具有相同名称的文件以实现差异功能?

是否可以有两个具有相同名称的属性?

是否可以有两个具有相同名称的ConnectionString?

具有相同名称的两个功能

具有相同名称的两个输入

推断显示两个具有相同名称的不同变量?

更改Java中的导入名称,或导入两个具有相同名称的类

Swift类使用两个在不同目标中具有相同名称的Objective C文件

Bash脚本,另一个目录中具有相同名称的两个文件

不同cpp文件中同一命名空间中具有相同名称的两个对象

为什么Visual Studio在bin文件夹中创建两个具有相同名称的DLL?

是否可以创建多个具有相同名称的变量?

Specman为什么不能导入两个具有相同名称的文件?

PDF合并两个具有相同名称的文件

SAX 混淆 XML 中具有相同名称的两个节点

两个不同包装中具有相同名称的实体

在php正则表达式中具有相同名称的两个组