我曾try 使用特定模式在宏调用中传递本地对象,但失败了.例如:
macro_rules! run_map {
(($vector: expr).map(($closure: expr))) => {
$vector().iter().map($closure: expr).collect::<Vec<_>>()
};
}
fn main() {
let my_vector: Vec<i32> = vec![3,4,5];
run_map!(my_vector.map(|e| e * e));
}
下面是我得到的错误:
run_map!(my_vector.map(|e| e * e));
^^^^^^^^^ no rules expected this token in macro call
如何提取对象并在宏中的表达式中单独使用它们?