属性是应用于某些模块、crate或者项的元数据。这些元数据可以有以下用途:
- 条件编译代码
- 设置crate名称、版本和类型
- 禁用lint警告
- 启用编译器的特性(如宏、全局导入等)
- 连接到一个非Rust语言的库
- 标记函数作为单元测试
- 标记函数作为基准测试的某个部分
作用于整个crate时,语法为#![crate_attribute] (注意:有感叹号!)
作用于模块或者项时,语法为#[item_attribute] (注意:无感叹号)
属性可以接收参数,其语法形式如下:
- #[attribute = "value"]
- #[attribute(key = "value")]
- #[attribute(value)]
- #[attribute(value1, value2, value3, value4, value5)]
閱讀更多 令狐一衝a 的文章