这个非常简单的Rust程序:
fn main() {
let c = "hello";
println!(c);
}
Run Code Online (Sandbox Code Playgroud)
抛出以下编译时错误:
error: expected a literal
--> src/main.rs:3:14
|
3 | println!(c);
| ^
Run Code Online (Sandbox Code Playgroud)
在以前版本的Rust中,错误说:
error: format argument must be a string literal.
println!(c);
^
Run Code Online (Sandbox Code Playgroud)
用以下代替程序:
fn main() {
println!("Hello");
}
Run Code Online (Sandbox Code Playgroud)
工作良好.
这个错误的含义对我来说并不清楚,谷歌的搜索并没有真正揭示它.为什么传递c给println!宏会导致编译时错误?这似乎是非常不寻常的行为.
rust ×1