这可能听起来是一个微不足道的问题,但我是Swift的新手,我想知道内部类是否可以拥有我想在该类中使用的公共方法和变量。
让我们这样说(例如)
internal class myService: InheritService {
public var x : Int32 = 0
public func sum (_ a: Int32, _b: Int32) -> Int32 {
return (a + b)
}}
我可以从外面起诉函数和和变量x吗?
提前致谢
答案 0 :(得分:1)
不,它不能。包含在第一类公民中的属性或方法的任何访问修饰符(如类,结构,协议或枚举)将始终被包含定义覆盖。
以这种方式思考,如果你看不到狗,你怎么能检查它有多少腿?
struct Dog {
public var legCount: Int = 3
}
答案 1 :(得分:0)
尽管以下代码编译时不会出现警告,但正如其他评论所暗示的那样,它实际上没有意义。
internal class Animal {
public let name = "Bob"
}
因此,您可能希望在代码库中添加诸如 lower_acl_than_parent 之类的 lint 规则,以防止您拥有这样的代码。