macro_rules! cfg { ($($cfg : tt) *) => { ... }; }
在编译时评估配置标志的布尔组合。
除了 #[cfg] 属性,还提供了此宏,以允许对配置标志进行布尔表达式评估。 这通常会减少重复的代码。
#[cfg]
该宏的语法与 cfg 属性的语法相同。
cfg
cfg! 与 #[cfg] 不同,它不会删除任何代码,只会评估为 true 或 false。 例如,当将 cfg! 用作条件时,无论 cfg! 正在评估什么,if/else 表达式中的所有块都必须有效。
cfg!
let my_directory = if cfg!(windows) { "windows-specific-directory" } else { "unix-directory" };