如何在 Rust println 中直接使用函数 return 值

How to use function return value directly in Rust println

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`

是否可以直接将函数 return 的值与 println! 一起使用?

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

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

println!("{}", rand::random::<f64>()); 中的涡轮鱼 ::<f64> 强制 rand::random 的通用部分成为 f64。在这种情况下,通用参数与 return 类型相匹配 - 但对于其他函数,情况并非如此。

在这种情况下,可以告诉编译器您想要的函数的 return 类型,而不是通用参数。在这种情况下,如果您使用的是夜间编译器,则可以使用 "type ascription".

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