在Rust中是否可以做到像这样的事情?
trait Foo<T> {}
struct A;
struct B;
struct Bar<T: Foo> {
a: T<A>,
b: T<B>
}
我知道我可以只使用两个参数来定义Bar
,但我认为一定有更好的方法来实现这个功能。
我想要实现一个Graph
结构。由于我不能仅仅将节点和边绑定到它们父级的生命周期上,所以我想要像Rc
一样实现一个类似的结构。然而,有时候我们可能需要一个可以从多个线程访问的Graph
。因此,我需要同时实现Rc
和Arc
的版本。
这就是Foo
的作用:我为Rc
和Arc
分别实现Foo
(Foo
需要Deref
),并使用一个绑定到Foo
的参数T
。这样我就可以拥有一个适用于单线程和多线程的结构体。
for
语法对我来说有点困惑,但我一定会阅读相关章节。 - torkleyy