如何获取宏中变量的名称和值?

JSh*_*use 1 macros rust rust-macros

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

let my_variable: i32 = 5;
printvar!(my_variable); // => to print "my_variable = 5"
Run Code Online (Sandbox Code Playgroud)

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

#include <stdio.h>

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

 int main() {
    int my_variable = 5;
    PRINT_VAR(my_variable);
}
Run Code Online (Sandbox Code Playgroud)
$ ./a.out
my_variable = 5
Run Code Online (Sandbox Code Playgroud)

Apl*_*123 9

Rust 中的等价物#stringify!

macro_rules! print_var {
    ($var: ident) => {
        println!("{} = {}", stringify!($var), $var);
    }
}

fn main() {
    let my_variable = 5;
    // prints my_variable = 5
    print_var!(my_variable);
}
Run Code Online (Sandbox Code Playgroud)