Un modo che conosco è quello di fornire le annotazioni di tipo a Rust è dichiarando una variabile intermedia in modo che il compilatore conosce il tipo di ritorno:Come posso fornire annotazioni di tipo in linea quando si chiama una funzione non generica?
use std::num::Int
let max_usize: usize = Int::max_value();
println!("Max usize: {}", max_usize);
Ma come posso fornire il tipo di annotazione "in linea"?
Per esempio, non mi aspetto la seguente al lavoro non modificato perché non c'è nessun tipo di annotazione a tutti, ma questo è il genere di cosa che sto cercando:
use std::num::Int
println!("Max usize: {}", Int::max_value());
ho provato Int::max_value::<usize>()
, che dà error: too many type parameters provided: expected at most 0 parameter(s), found 1 parameter(s)
- e questo ha senso perché max_value()
non è generico.
In Scala vorrei scrivere myFunction(someDog: Animal)
invece di scrivere
val someAnimal: Animal = someDog
myFunction(someAnimal)
C'è sintassi equivalente a Rust?