Rust 如何检测是否向声明性宏提供了可选关键字?
我正在写一个宏:Rust 如何检测是否向声明性宏提供了可选关键字?,rust,macros,rust-decl-macros,Rust,Macros,Rust Decl Macros,我正在写一个宏: macro_rules! foo { ($(print)?) => { // run `println!("hello") if print is given } } 可称之为: foo!()它什么也做不了 foo!(打印)哪个会打印hello 如何检测是否提供了print?当我使用重复运算符时,我需要在其中放入一个变量。是否有某种类型的空变量可以使用?((print$print:empty)?)为每种情况制定
macro_rules! foo {
($(print)?) => {
// run `println!("hello") if print is given
}
}
可称之为:
它什么也做不了foo!()
哪个会打印hellofoo!(打印)
如何检测是否提供了
print
?当我使用重复运算符时,我需要在其中放入一个变量。是否有某种类型的空变量可以使用?((print$print:empty)?
)为每种情况制定单独的规则:
macro\u规则!福{
() => {
//无所事事
};
(打印)=>{
println!(“你好”)
};
}
fn main(){
福!();//什么也不做
foo!(打印);//打印“你好”
}
请在回答之前搜索并建议重复项。如重复项中所述-定义两种模式。