【问题标题】:How to use function return value directly in Rust println如何在 Rust println 中直接使用函数返回值
【发布时间】:2020-05-21 23:56:13
【问题描述】:

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!可以直接使用函数返回值吗?

【问题讨论】:

    标签: function printing rust return formatted-text


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      println!("{}", rand::random::&lt;f64&gt;()); 中的turbofish ::&lt;f64&gt; 强制rand::random 的通用部分为f64。在这种情况下,泛型参数与返回类型匹配 - 但对于其他函数,情况并非如此。

      在这种情况下,可以告诉编译器你想要的函数的返回类型,而不是泛型参数。在这种情况下,如果您使用的是 nightly 编译器,则可以使用“类型归属”。

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

      【讨论】:

        猜你喜欢
        • 2015-06-19
        • 2014-08-06
        • 1970-01-01
        • 2011-12-15
        • 1970-01-01
        • 2020-06-02
        相关资源
        最近更新 更多