什么时候在 swift 中明确指定 'public' 即使它不是框架?

When to specify 'public' explicitly in swift even if its not a framework?

我目前在我的主应用程序中这样声明我的属性:

public var thingA: String?
private var thingB: String?
private var thingC: String?

我是否应该省略主模块中的 'public' 声明,因为没有其他模块需要使用 thingA.这样它看起来更像:

var thingA: String?
private var thingB: String?
private var thingC: String?

如果我们在此处省略 'public',这仅意味着如果它在一个框架中,则无法再从其他地方访问它,但在主要 app/module 中,这根本不是问题所以使用 public 不仅毫无意义,而且可以说是提供比所需更多访问权限的不良做法......(也许与编译器相关的低效率??)

商定的标准是什么,因为我似乎无法在文档或 Whosebug 中找到解决此问题的任何内容?

访问控制已定义 here。如果没有定义特定的访问控制,则意味着它将具有 internal 允许访问同一模块内的实体的访问控制。默认访问控制也是 internal 并且如上面 link 中所述,如果您正在处理单个目标应用程序,则可以省略定义特定访问控制(即不需要 public 访问控制)。

但是,我认为您应该始终从 private 访问控制开始,然后根据需要进行更改。