Swift 协议符合子类型
Swift protocol conformance with sub type
我希望能够使用实现协议要求的类型来实现协议(下面的 B)的 属性。例如我想编译下面的代码。目前,错误是 "Type D does not conform to protocol B"
protocol A {
func doSomething()
}
protocol B {
var property: A { get }
}
class C: A {
func doSomething() {
//Stuff
}
}
class D: B {
var property: C = C()
}
猜想这应该与关联类型一起完成
protocol B {
associatedtype T : A
var property: T { get }
}
class D : B{
var property : C = C()
}
我希望能够使用实现协议要求的类型来实现协议(下面的 B)的 属性。例如我想编译下面的代码。目前,错误是 "Type D does not conform to protocol B"
protocol A {
func doSomething()
}
protocol B {
var property: A { get }
}
class C: A {
func doSomething() {
//Stuff
}
}
class D: B {
var property: C = C()
}
猜想这应该与关联类型一起完成
protocol B {
associatedtype T : A
var property: T { get }
}
class D : B{
var property : C = C()
}