用Swift中的派生类嵌套类型解决歧义

用Swift中的派生类嵌套类型解决歧义,swift,inheritance,inner-classes,Swift,Inheritance,Inner Classes,代码如下: 类公共字段{ init(名称:String){} } 阶级基础{ 类字段:CommonField{} } 派生类:基{ 类字段:CommonField{} } 让a=CommonField(名称:“field”)//工作正常 让b=Base.Field(名称:“Base.Field”)//工作正常 设c=Derived.Field(名称:“Derived.Field”)//错误! 这就是错误: error: ambiguous use of 'init(name:)' let c

代码如下:

类公共字段{
init(名称:String){}
}
阶级基础{
类字段:CommonField{}
}
派生类:基{
类字段:CommonField{}
}
让a=CommonField(名称:“field”)//工作正常
让b=Base.Field(名称:“Base.Field”)//工作正常
设c=Derived.Field(名称:“Derived.Field”)//错误!
这就是错误:

error: ambiguous use of 'init(name:)'
let c = Derived.Field(name: "derived.field")
    ^
note: found this candidate
class Field: CommonField {}
^
note: found this candidate
class Field: CommonField {}
^
我正在使用以下版本的swift编译器:

Apple Swift version 4.2.1 (swiftlang-1000.11.42 clang-1000.11.45.1)
Target: x86_64-apple-darwin18.2.0

再次在子类中定义
类字段
的目的是什么?把它拿走!可以说,编译器应该拒绝
字段
的第二个嵌套定义,并重新声明错误。提交了一个bug:在派生类中重新声明嵌套类是否有用?您应该知道,在Swift中没有真正的嵌套类型。在另一个类型中声明一个新类型只会影响内部类型的名称空间,这两个类型之间没有类型关系。再次在子类中定义
类字段
的目的是什么?把它拿走!可以说,编译器应该拒绝
字段
的第二个嵌套定义,并重新声明错误。提交了一个bug:在派生类中重新声明嵌套类是否有用?您应该知道,在Swift中没有真正的嵌套类型。在另一个类型中声明新类型只会影响内部类型的命名空间,这两个类型之间不会有类型关系。