引用Swift 编程语言(Swift 3.1):
可以为自定义初始化程序分配小于或等于它们初始化的类型的访问级别。唯一的例外是必需的初始化程序(如必需初始化程序中所定义)。必需的初始化程序必须具有与其所属的类相同的访问级别。
如果是这样,为什么这段代码可以编译和工作?
private class GoofyClass {
public init(mood: String) {}
public required init(isCrazy: Bool) {}
}
private let shock = GoofyClass(mood: "shocked")
private let crazy = GoofyClass(isCrazy: true)