我希望有一个能够根据类型注解返回不同类型值的函数,例如:
give_five::<String>(); // returns "five"
give_five::<i32>(); // returns 5
give_five::<f32>(); // return 5.0
我尝试着写,但是它不起作用。我知道为什么它不起作用,但我不知道如何做。
fn give_five<String>() -> String {
String::from("five")
}
fn give_five<i32>() -> i32 {
5
}
fn give_five<f32>() -> f32 {
5.0
}
我从
rand
crate中得到了灵感。因为它可以做到......let mut rng = rand::thread_rng();
let x: i32 = rng.gen();
let y: f32 = rng.gen();