Rust · Intermediário · Inglês · Informal
turbofish
Sintaxe ::<T> usada para indicar o tipo genérico em uma chamada, como parse::<i32>() ou collect::<Vec<_>>(). O nome vem do desenho que lembra um peixe.
Onde usar
Aparece quando a inferência não consegue decidir o tipo. A alternativa é anotar o tipo da variável.
Em código
let n = "42".parse::<i32>().unwrap();
let v = (1..4).collect::<Vec<_>>();
let z = Vec::<u8>::new();
println!("{n} {v:?} {}", z.len());Exemplos
Add a turbofish so it knows what to parse.
Adicione um turbofish para ele saber o que converter.
collect needs a turbofish or a type annotation.
O collect precisa de um turbofish ou de uma anotação de tipo.
Cuidado
Em tipos e declarações escreve-se Vec<u8> sem os dois pontos; o :: só é exigido em expressões.
Sinônimos
::<>
Origem
Do inglês turbo e fish, 'peixe turbo': ::<> parece um peixe de lado.