我一直在尝试制作一个功能类似于Python输入函数的宏。
而不是每次我想要稍微自动化它时都完全编写标准输入,并结合 println!这样我就可以用一块石头杀死两只鸟。
本质上,如果有人传入一个参数,它会打印一个字符串,然后要求输入,如果他们不这样做,它只会要求从终端输入。
#[macro_export]
macro_rules! input {
($a:expr) => {
println!("{}", $a);
let mut input = String::new();
std::io::stdin().read_line(&mut input).unwrap();
return $input
};
(_) => {
let mut input = String::new();
std::io::stdin().read_line(&mut $input).unwrap();
return $input
};
}
Run Code Online (Sandbox Code Playgroud)
我在 let 语句上不断收到错误,只是不知道如何继续,因为我不太了解宏语法。
我发布了整个代码块,因为在第二个匹配表达式上,我试图在没有参数的情况下进行匹配,但我不确定我是否做得正确。
有时错误消息将我带到 github 页面,并且遇到随机错误,所以我只是困惑如何继续进一步
如果有人能帮助我修复 let 语句,我将不胜感激,对于给您带来的任何不便,我深表歉意。