小编The*_*les的帖子

我的 Rust 宏不想接受这个 let 语句

我一直在尝试制作一个功能类似于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 语句,我将不胜感激,对于给您带来的任何不便,我深表歉意。

syntax macros input rust macro-rules

3
推荐指数
1
解决办法
318
查看次数

标签 统计

input ×1

macro-rules ×1

macros ×1

rust ×1

syntax ×1