Эта чрезвычайно простая программа Rust:
fn main() {
let c = "hello";
println!(c);
}
выдает следующую ошибку времени компиляции:
main.rs:15:14: 15:15 error: format argument must be a string literal.
main.rs:15 println!(c);
^
note: in expansion of format_args!
<std macros>:2:54: 2:77 note: expansion site
<std macros>:1:1: 3:2 note: in expansion of println!
main.rs:15:5: 15:17 note: expansion site
error: aborting due to previous error
Could not compile `numrust`.
Замена программы:
fn main() {
println!("Hello");
}
Прекрасно работает.
Значение этой ошибки для меня непонятно, и поиск Google на самом деле не проливает свет на него. Почему передача c
в макрос println!
вызывает ошибку времени компиляции? Это кажется довольно необычным поведением.