Aer*_*lSP 4 string rust rust-macros rust-decl-macros
所以我在这里,和 Rustlings 一起用卡车运输,直到我在测试 4 中遭到猛烈攻击。
它要求我编写一个满足以下代码的宏:
fn main() {
if my_macro!("world!") != "Hello world!" {
panic!("Oh no! Wrong output!");
}
}
Run Code Online (Sandbox Code Playgroud)
所以,我写了这个:
macro_rules! my_macro {
($val:expr) => {
println!("Hello {}", $val);
}
}
Run Code Online (Sandbox Code Playgroud)
Rustlings 吐出了这一点:
fn main() {
if my_macro!("world!") != "Hello world!" {
panic!("Oh no! Wrong output!");
}
}
Run Code Online (Sandbox Code Playgroud)
哪个,你知道。我明白了。我明白问题是什么,但我不明白如何编写一个满足代码的宏。我可以更改正在测试的代码,但这不是测试想要我做的。我只是写一个宏。我很困惑。我也不明白将宏封装在模块中有何帮助,但测试表明这是对模块和宏的测试。
println!将打印到stdout. 相反,您只想格式化字符串并从宏返回它。使用format!相反,并删除;以便它将返回表达式而不是():
macro_rules! my_macro {
($val:expr) => {
format!("Hello {}", $val)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1452 次 |
| 最近记录: |