我想创建一个宏作为参数($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语句在块内.如果我试图通过改变来解决问题{{来{,然后它会产生一个语法错误.有什么方法可以解决这个问题吗?
| 归档时间: |
|
| 查看次数: |
783 次 |
| 最近记录: |