如何解决如何具有绑定到协议的特定枚举用例
这是我想要的一个简单示例:
protocol P: Equatable {}
enum A: P {}
enum B: P {}
enum Foo {
case 1
case 2
case test(P)
}
在Foo枚举中,我想要test
枚举中的第三种情况Foo
。
换句话说,我想要一个符合协议P的类型。
不能直接使用协议P。
例如,案例test
可以是A或B类型的枚举。
实际上,我可以:
enum Foo<T: P> {
case 1
case 2
case test(T)
}
但是,它将仅用于第三种情况。 因此,如果我不需要输入类型,将很烦人。
您有解决此问题的建议吗?
-编辑-
确实,最新版本正在运行。
我刚刚补充说,协议P符合协议Equatable
。
现在,我收到了相同的问题,但出现以下错误:
“协议'P'只能用作通用约束,因为它具有Self或关联的类型要求”。
我想我理解为什么会出现问题,导致Swift假设我可以比较两个不同类型的对象。 但是,在我的实现中将是不可能的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。