当我尝试使用rustc main.rs
编译此代码时:
macro_rules! getPI {
let pi = 3.141592;
println!("Pi is roughly 3.142 \n {0}", pi);
}
fn main() {
print!(getPI);
}
它给了我一个错误:
error: no rules expected the token `pi`
--> src/main.rs:2:9
|
2 | let pi = 3.141592;
| ^^
我是编程的新手,我希望有人有解决方案。
答案 0 :(得分:3)
如果你是#34;非常新的编程",那么你应该从头开始;宏不是的开头。返回并重新阅读The Rust Programming Language, second edition,即使它针对已经了解其他编程语言的人。
然后,您可以阅读the chapter from the first edition about macros。这将显示宏的正确语法。宏有许多武器,如match
声明:
macro_rules! getPI {
() => {
let pi = 3.141592;
println!("Pi is roughly 3.142 \n {0}", pi);
}
}
fn main() {
getPI!();
}
我也不知道为什么你会尝试print!
宏的返回值,所以我删除了它。您还必须使用感叹号(!
)调用宏。