【发布时间】:2020-06-14 18:06:27
【问题描述】:
我正在尝试建立我对 Rust 中关联类型的直觉。在我的实验中,我构建了泛型和实现的这种(荒谬的)组合。
struct MyStruct<T>{
t:T
}
trait MyTrait {
type T1;
fn tt(x:Self::T1) -> MyStruct<Self::T1>;
}
impl<T> MyTrait for MyStruct<T> {
type T1=T;
fn tt(a:Self::T1) -> MyStruct<Self::T1> {
MyStruct{t:a}
}
}
它可以编译,但问题是我不能使用'tt'函数。
fn main() {
let x = MyTrait::tt(1);
}
导致错误:cannot infer type。
我已经尝试了为 Rust 提供类型提示的选项,但我尝试的越多,(对我来说)错误消息就越少。
有人可以从上面为我提供使用MyTrait::tt 函数的示例,还是这是一个死胡同?如果有,为什么?
【问题讨论】:
标签: generics rust associated-types