Эта конструкция называется турбовиной.Если вы ищете это утверждение, вы обнаружите его определение и его использование.
Хотя первое издание Rust Programming Language устарело, я чувствую, что этот конкретный раздел лучше, чем во второй книге .
Цитирование второго издания:
path::<...>
, method::<...>
Указывает параметры для универсальноготип, функция или метод в выражении;часто упоминается как turbofish (например, "42".parse::<i32>()
)
. Вы можете использовать его в любой ситуации, когда компилятор не может определить параметр типа, например,
fn main () {
let a = (0..255).sum();
let b = (0..255).sum::<u32>();
let c: u32 = (0..255).sum();
}
a
не работает, потому что не может определить тип переменной.
b
работает, потому что мы указываем параметр типа напрямую с синтаксисом turbofish.
c
работает, потому что мы указываем типc
напрямую.