gpt4 book ai didi

rust - 在特征边界中引用关联类型

转载 作者:行者123 更新时间:2023-11-29 08:30:14 24 4
gpt4 key购买 nike

我有一个 trait 是为了加强对另一个 trait 的约束,例如:

trait AssocA {}
trait AssocB: AssocA {}
trait A { type MyAssoc: AssocA; }
trait B: A { type MyAssoc: AssocB; }

如果我使用泛型而不是关联类型,我可以告诉 Rust MyAssoc跨性状相同AB :

trait AssocA {}
trait AssocB: AssocA {}
trait A<MyAssoc> where MyAssoc: AssocA {}
trait B<MyAssoc>: A<MyAssoc> where MyAssoc: AssocB { }

如何对关联类型执行相同的操作?

最佳答案

可以通过Self查看实现类型自 B: A , Self::MyAssoc已经存在。

trait B: A where Self::MyAssoc : AssocB {}

这禁止impl B for T {}什么时候<T as A>::MyAssoc不执行 AssocB . (example)

关于rust - 在特征边界中引用关联类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30412437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com