如何在Rust的println中直接使用函数返回值

5
Rust允许使用以下方式格式化打印变量:
fn main(){
  let r:f64 = rand::random();
  println!("{}",r);
}

但这不起作用:

fn main(){
  println!("{}",rand::random());
}

出现了这个错误:

   |
31 |   println!("{}",rand::random());
   |                 ^^^^^^^^^^^^ cannot infer type for type parameter `T` declared on the function `random`

能否直接将函数的返回值与 println! 一起使用?

2个回答

5

Rust 不知道 rand::random 应该是什么类型,因此您可以使用 turbofish 来提供类型提示:

println!("{}", rand::random::<f64>());

1
"turbofish"在println!("{}", rand::random::<f64>());中强制rand::random的通用部分为f64。在这种情况下,通用参数与返回类型匹配-但对于其他函数可能不是这种情况。
在这种情况下,可以告诉编译器您想要的函数返回类型,而不是通用参数。在这种情况下,如果您正在使用夜间编译器,则可以使用“类型注释”。
println!("{}", rand::random(): f64);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接