如何在宏中获取变量的名称和值?
How to get both name and value of variable in a macro?
是否可以制作一个可以访问作为参数传递的变量的名称和值的 Rust 宏?
let my_variable: i32 = 5;
printvar!(my_variable); // => to print "my_variable = 5"
例如,对于 C 宏,我们可以使用 #
运算符:
#include <stdio.h>
#define PRINT_VAR(x) printf("%s = %d\n", #x, x);
int main() {
int my_variable = 5;
PRINT_VAR(my_variable);
}
$ ./a.out
my_variable = 5
Rust 中 #
的等价物是 stringify!
macro:
macro_rules! print_var {
($var: ident) => {
println!("{} = {}", stringify!($var), $var);
}
}
fn main() {
let my_variable = 5;
// prints my_variable = 5
print_var!(my_variable);
}
是否可以制作一个可以访问作为参数传递的变量的名称和值的 Rust 宏?
let my_variable: i32 = 5;
printvar!(my_variable); // => to print "my_variable = 5"
例如,对于 C 宏,我们可以使用 #
运算符:
#include <stdio.h>
#define PRINT_VAR(x) printf("%s = %d\n", #x, x);
int main() {
int my_variable = 5;
PRINT_VAR(my_variable);
}
$ ./a.out
my_variable = 5
Rust 中 #
的等价物是 stringify!
macro:
macro_rules! print_var {
($var: ident) => {
println!("{} = {}", stringify!($var), $var);
}
}
fn main() {
let my_variable = 5;
// prints my_variable = 5
print_var!(my_variable);
}