我想要针对其参数类型优化的函数的多个版本,Rust 根据上下文调用适当的版本。
在我的例子中,所有参数都具有相同的类型,并且都是等价的,所以它宁愿避免有一个self
参数。
我试过这段代码:
trait Foo<T> {
fn foo(a: T, b: T, c: T);
}
impl Foo<i32> {
fn foo(a: i32, b: i32, c: i32) {}
}
impl Foo<i16> {
fn foo(a: i16, b: i16, c: i16) {}
}
fn main() {
Foo::foo(1i32,2,3);
Foo::foo(1i16,2,3);
}
但是 Rust 需要类型注解:
错误:需要类型注释:无法解析
_ : Foo<i32>
[E0283]
我可以避免在呼叫站点提供类型注释吗?如果必须,该怎么做?