小编aea*_*cve的帖子

Rust宏可以设置变量并同时返回一个值吗?

我想创建一个宏作为参数($var:ident, $val:expr).宏应该将变量$var设置为值$val,克隆它,然后返回克隆.这是我的尝试:

macro_rules! my_macro {
    ($var:ident, $val:expr) => {{
        let $var = $val;
        $var.clone()
    }}
}

fn main() {
    println!("{}", my_macro!(x, 5));
    println!("{}", x);
}
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为let语句在块内.如果我试图通过改变来解决问题{{{,然后它会产生一个语法错误.有什么方法可以解决这个问题吗?

rust

4
推荐指数
1
解决办法
783
查看次数

标签 统计

rust ×1