{ { -6ren">
gpt4 book ai didi

rust - "expected identifier"创建宏时同时定义可变变量

转载 作者:行者123 更新时间:2023-11-29 08:02:50 25 4
gpt4 key购买 nike

我想同时声明多个可变变量。定义了一个宏来声明可变变量,如下所示。

macro_rules! mutf64 {
( $( $e:expr ),+ ) => {
{
$(
let mut $e:f64;
)+
}
};
}

fn main() {
mutf64!(FT, FX, alpha, H, K, lambda, T, X);
}

用编译器检查语法时出现错误:

error: expected identifier, found `FT`
--> src/main.rs:5:25
|
5 | let mut $e:f64;
| ^^ expected identifier
...
12 | mutf64!(FT, FX, alpha, H, K, lambda, T, X);
| ------------------------------------------- in this macro invocation

为什么我不能用 macro_rules 做到这一点?

最佳答案

表达式 不是标识符。改用这个:

( $( $e:ident ),+ ) => {

声明变量时,需要提供标识符。表达式没有意义:

let mut 1+1;

关于rust - "expected identifier"创建宏时同时定义可变变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50511456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com