E0107
提供的泛型参数数目不正确。
错误代码示例:
struct Foo<T> { x: T }
struct Bar { x: Foo } // error: 类型参数数目错误:
// 期望 1,获得 0
struct Baz<S, T> { x: Foo<S, T> } // error: 类型参数数目错误:
// 期望 1,获得 2
fn foo<T, U>(x: T, y: U) {}
fn f() {}
fn main() {
let x: bool = true;
foo::<bool>(x); // error: 类型参数数目错误:
// 期望 2,获得 1
foo::<bool, i32, i32>(x, 2, 4); // error: 类型参数数目错误:
// 期望 2,获得 3
f::<'static>(); // error: 类型参数数目错误:
// 期望 0,获得 1
}
使用/声明具有泛型参数的项时,必须提供完全相同的(泛型参数)数目:
struct Foo<T> { x: T }
struct Bar<T> { x: Foo<T> } // ok!
struct Baz<S, T> { x: Foo<S>, y: Foo<T> } // ok!
fn foo<T, U>(x: T, y: U) {}
fn f() {}
fn main() {
let x: bool = true;
foo::<bool, u32>(x, 12); // ok!
f(); // ok!
}
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。