» Rust快速入门 » 1. 基础篇 » 1.11 属性

属性

属性是应用于某个模块、某个 crate 或项的元数据。

当属性应用于整个 crate 时,其语法为 #![crate_attribute],而当属性应用于模块或项时,其语法为 #[item_attribute](注意没有感叹号 !)。

属性可以带有不同语法格式的参数:

  • #[attribute = "value"]
  • #[attribute(key = "value")]
  • #[attribute(value)]

dead_code

dead_code 属性可用于禁止编译器 lint 警告未使用的函数。用于调试代码很方便。

fn used_function() {}

#[allow(dead_code)]
fn unused_function() {}

fn main() {
    used_function();
}

cfg

cfg 可通过两种方式进行条件配置检查:

  • cfg 属性: #[cfg(...)]
  • cfg! 宏: cfg!(...)

前者可启用条件编译,而后者可在运行时进行条件求值判断。

// 该 cfg 限制仅在 Linux 下编译此代码
#[cfg(target_os = "linux")]
fn on_linux() {
    println!("Running Linux!");
}

fn main() {
    on_linux();

    // 运行时判断是否是 Linux
    if cfg!(target_os = "linux") {
        println!("Yes, on linux!");
    } else {
        println!("No, not on linux!");
    }
}

代码挑战

尝试修改编辑器中代码以正确使用 cfg 属性。

Loading...
> 此处输出代码运行结果
上页
下页