Macro std::concat_idents
source · macro_rules! concat_idents { ($($e:ident),+ $(,)?) => { ... }; }
🔬This is a nightly-only experimental API. (
concat_idents
#29599)Expand description
将标识符串联为一个标识符。
该宏采用任意数量的逗号分隔的标识符,并将它们全部连接为一个,从而产生一个表达式,该表达式是一个新的标识符。 请注意,卫生使该宏无法捕获本地变量。 同样,作为一般规则,只允许在项,语句或表达式位置使用宏。 这意味着尽管您可以使用此宏来引用现有的变量,函数或模块等,但是您无法使用它来定义一个新的宏。
Examples
#![feature(concat_idents)]
fn foobar() -> u32 { 23 }
let f = concat_idents!(foo, bar);
println!("{}", f());
// fn concat_idents!(new, fun, name) { } // 无法以这种方式使用!
Run