基于宏agrument rust的值创建代码


macro_rules! retry_put {
($mod_name:ident, $data_type:ty) => {{
fn $mod_name() {
// somelike
if $mod_name == "red" {
// generate code written here and not the one in else block
return u8;
}
else {
// generate code written here and not the one in if
return "string";
}
}
}
}

我基本上是根据输入来改变字符串的返回类型,如果输入为true,则返回字符串,否则返回int。

或者举个例子:举个例子,我们在宏中接受一个自变量,如果它的偶数计算5的阶乘并将其作为整数返回,如果自变量是奇数,则计算5的阶乘并将它作为字符串返回。并且这两个函数的名称应该相同。以及计算逻辑5!不应重复。

您可以重载这样的宏:

macro_rules! retry_put {
(red, $data_type:ty) => {{
fn red() {
return u8;
}
}
}
($mod_name:ident, $data_type:ty) => {{
fn $mod_name() {
return "string";
}
}
}
}

请参阅macro_rules!。

相关内容

  • 没有找到相关文章

最新更新