Macro std::concat_idents[][src]

macro_rules! concat_idents {
    ($($e:ident),+ $(,)?) => { ... };
}
🔬 This is a nightly-only experimental API. (concat_idents #29599)

concat_idents is not stable enough for use and is subject to change

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