why-rust-write-impl-two-T
十二月 20, 2023why-rust-write-impl-two-T
第一个 T 是声明,第二个 T 是使用。 如果不先声明,那么 Rust 就不能确定 T 是泛型还是具体类型,示例如下:
struct Foo<T> {
x: T
}
impl<T> Foo<T> {
fn new() -> Foo<T> {
unimplemented!()
}
}
type T = i32;
impl Foo<T> { // 你能确定 T 是泛型还是 i32 吗?
fn new_t() -> Foo<T> {
unimplemented!()
}
}