【发布时间】:2019-12-12 09:26:54
【问题描述】:
我想做这样的事情:
trait Trait {
type Type;
fn function<T>(val1: &T, ty: T::Type)
where T: Trait
{}
}
struct Struct;
impl Trait for Struct {
type Type = u32;
}
fn main() {
let val = Struct;
Trait::function(&val, 5u32);
}
我得到了错误:error[E0284]: type annotations required: cannot resolve `<_ as Trait>::Type == _`
(c.frust playground)
但即使我添加类型注释(Trait::function::<Struct>(&val, 5u32)),我也有同样的错误。
有关此错误原因的任何线索?
【问题讨论】:
-
你真的是说
function是通用的吗?似乎您希望T成为Self。 -
@mcarton 好吧,确实,谢谢!仍在学习 Rust 并且仍然有一些麻烦来做我想做的事。假设我来自 C++,这是一种完全不同的思维方式:D
标签: generics rust traits type-inference