Swift 如何实现符合相互关联协议之一的泛型类?
我有两个协议。每个(x)都包含Swift 如何实现符合相互关联协议之一的泛型类?,swift,generics,protocols,Swift,Generics,Protocols,我有两个协议。每个(x)都包含associatedtype,当该协议的associatedtype(y)等于Self(属于x)时,需要确认另一个协议(y) 协议B{ 关联类型AA:A 其中AA.BB==Self } A方案{ 关联类型BB:B 其中BB.AA==Self } 按照以下方式实施这些协议没有问题: AAA级:A{ 类型别名BB=BBB } BBB类:B{ 类型别名AA=AAA } 但我不能将其中的一个实现为泛型 AAA级:A{ 类型别名BB=BBBB } BBB类:B{ 类型别名
associatedtype
,当该协议的associatedtype
(y)等于Self
(属于x)时,需要确认另一个协议(y)
协议B{
关联类型AA:A
其中AA.BB==Self
}
A方案{
关联类型BB:B
其中BB.AA==Self
}
按照以下方式实施这些协议没有问题:
AAA级:A{
类型别名BB=BBB
}
BBB类:B{
类型别名AA=AAA
}
但我不能将其中的一个实现为泛型
AAA级:A{
类型别名BB=BBBB
}
BBB类:B{
类型别名AA=AAA
}
因此,我有一个错误:
“A”要求“AAA”和“BBBB.AA”类型等效
并请注意:
要求指定为“Self”==“Self.BB.AA”[带Self=AAA]
听起来可以理解。我在泛型类中添加了约束
AAA类:其中BBBB.AA==AAA{
类型别名BB=BBBB
}
和结果
错误:类型“AAA”不符合协议“A”注:协议要求嵌套类型“BB”;您想添加它吗 错误:类型“BBB”不符合协议“B”
注:协议要求嵌套类型“AA”;您想添加它吗 我所有的尝试都没有成功,他们只是更改了错误消息。
有可能吗?怎么做?以我目前的知识,我认为不可能做你想做的事。 我在寻找更多的信息,我找到了一些关于为什么不需要它的信息