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