引数の型に対して最適化された関数の複数のバージョンが必要で、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]
呼び出しサイトで型注釈を提供しないようにすることはできますか? しなければならない場合、どうすればいいですか?