首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在宏中同时获取变量的名称和值?

如何在宏中同时获取变量的名称和值?
EN

Stack Overflow用户
提问于 2021-11-10 23:09:08
回答 1查看 55关注 0票数 1

是否有可能创建一个Rust宏,它可以访问作为参数传递的变量的名称和值?

代码语言:javascript
复制
let my_variable: i32 = 5;
printvar!(my_variable); // => to print "my_variable = 5"

例如,对于C宏,我们可以使用#运算符:

代码语言:javascript
复制
#include <stdio.h>

#define PRINT_VAR(x) printf("%s = %d\n", #x, x);

 int main() {
    int my_variable = 5;
    PRINT_VAR(my_variable);
}
代码语言:javascript
复制
$ ./a.out
my_variable = 5
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-10 23:24:36

相当于Rust中的#的是stringify! macro

代码语言:javascript
复制
macro_rules! print_var {
    ($var: ident) => {
        println!("{} = {}", stringify!($var), $var);
    }
}

fn main() {
    let my_variable = 5;
    // prints my_variable = 5
    print_var!(my_variable);
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69921294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档