Rust:如何将格式化打印输出到 stderr?

Rust: how to make a formatted print to stderr?

我正在尝试在 Rust 中将格式化字符串打印到 stderr(这里是好奇的新手!),但它看起来像是一个简单方便的宏(例如 print!/println! for stdout) 标准库中没有提供。

在 C 中,可以这样做:

fprintf(stderr, "format_string", args ...);

我已经使用

成功地将字符串 文字 打印到 stderr
let stderr = std::io::stderr();
writeln!(&mut stderr, "literal");

接下来想到的是先做一个format!,然后用writeln!,用error: expected a literal编译失败的mut。另一方面,stderr.write() 需要 &[u8],所以使用 String::bytes().collect() 也不起作用。

正确的解决方法是什么?

参见answer of the linked duplicate。从 Rust 1.19 开始,您可以使用 eprintln! 宏。