内部类可以在Swift / Xcode 9中使用公共函数和变量吗?

时间:2018-03-06 10:19:41

标签: swift xcode

这可能听起来是一个微不足道的问题,但我是Swift的新手,我想知道内部类是否可以拥有我想在该类中使用的公共方法和变量。

让我们这样说(例如)

internal class myService: InheritService {

public var x : Int32 = 0

public func sum (_ a: Int32, _b: Int32) -> Int32 {

 return (a + b)

}}

我可以从外面起诉函数和和变量x吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

不,它不能。包含在第一类公民中的属性或方法的任何访问修饰符(如类,结构,协议或枚举)将始终被包含定义覆盖。

以这种方式思考,如果你看不到狗,你怎么能检查它有多少腿?

struct Dog {
    public var legCount: Int = 3
}

答案 1 :(得分:0)

尽管以下代码编译时不会出现警告,但正如其他评论所暗示的那样,它实际上没有意义。

internal class Animal {
  public let name = "Bob"
}

因此,您可能希望在代码库中添加诸如 lower_acl_than_parent 之类的 lint 规则,以防止您拥有这样的代码。