- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在 Swift 中,这样做会导致编译错误:
// file1.swift
private let testVar = 2
// file2.swift
private let testVar = 3
特别是,其中一个声明将以“无效的 testVar 重新声明”突出显示。
documentation一般而言,声明:
Private access restricts the use of an entity to its own defining source file. Use private access to hide the implementation details of a specific piece of functionality.
在讨论原始值时,它说:
The types used for any raw values or associated values in an enumeration definition must have an access level at least as high as the enumeration’s access level. You cannot use a private type as the raw value type of an enumeration with an internal access level, for example.
关于常量:
A constant, variable, or property cannot be more public than its type. It is not valid to write a public property with a private type, for example. Similarly, a subscript cannot be more public than either its index type or return type.
对我来说,这些摘录都没有暗示您不应该在单独的文件中拥有具有相同名称的 private
变量。
的确,第一句话对我说你应该能够;否则,您将泄露实现细节(即,您使用了一个名为 testVar
的变量)。
在提交错误报告之前,我想检查一下我没有误解语义。这应该是可能的吗?
最佳答案
这已在 Xcode 6.1 beta 2 中修复:
Issues Resolved in Xcode 6.1 Beta
Swift Language
Private entities with the same name and same type will no longer conflict if defined in different files within the same module. (17632175)
关于swift - 您是否应该能够在不同的文件中声明两个具有相同名称的私有(private)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25527034/
我正在使用 Java 编写一个时钟程序,该程序能够“滴答作响”,但它存在问题。我认为它与 getter 和 setter 或 toString() 方法有关。 计数器类 package clock;
const Index = () => { // Ref Links const frefLinks = { 1: useRef(1), 2: useRef(2), 3: useRef(3
所以我读了here不能 pickle 装饰函数。确实: import multiprocessing as mp def deco(f): def wrapper(*args, **kwarg
我在go1.11.2 linux/amd64 版本。当包godog使用 go get github.com/DATA-DOG/godog/ 安装,godog 可执行文件在 $GOPATH/bin/中创
如何正确压缩字符串,以便 PHP 能够解压缩? 我试过这个: public static byte[] compress(String string) throws IOException {
我们这里的问题是表明 在测试中使用 Kleene 代数。 在 b 的值由 p 保留的情况下,我们有交换条件 bp = pb;两个程序之间的等价性简化为等式 在 b 的值不被 p 保留的情况下,我们有交
我有一个与我的网络相关的非常奇怪的问题,我在具有多个接口(interface)的 VirtualBox 上安装了 RDO Grizzly OpenStack。 虚拟盒子: eth0 - managem
我正在尝试使用 Passport.js授权谷歌OAuth2在 Node.js .我整个星期都在尝试让它工作,但不知道为什么它不工作,所以现在我求助于 stack 寻求一些潜在的帮助。我已经尝试了所有在
我是一名优秀的程序员,十分优秀!