我希望能够有多个版本的函数,针对不同类型的参数进行优化,Rust会根据上下文调用相应的函数。
在我的情况下,所有参数都具有相同的类型,并且都是等效的,因此最好避免使用self参数。
我尝试过这段代码:tried this code。
在我的情况下,所有参数都具有相同的类型,并且都是等效的,因此最好避免使用self参数。
我尝试过这段代码:tried this code。
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]
我能避免在调用时提供类型注释吗?如果必须提供,应该如何做?