Attributes
Một thuộc tính là metadata(siêu dữ liệu) áp dụng cho 1 số module, crate hoặc mục nào đó. Metadata này có thể được sử dụng để/cho:
- biên dịch mã có điều kiện
- đặt tên crate, phiên bản và loại (một tệp kiểu nhị phân hay là một thư viện)
- vô hiệu hóa lints (những cảnh báo)
- bật các tính năng của trình biên dịch (macros, glob imports, etc.)
- liên kết đến một thư viện ngoài
- đánh dấu các chức năng như là unit tests
- đánh dấu các chức năng sẽ là một phần của benchmark
- thuộc tính như macro
Khi các thuộc tính áp dụng cho toàn bộ crate, cú pháp của nó là #![crate_attribute]
, và khi chúng áp dụng cho một module hoặc mục, cú pháp là #[item_attribute]
(bỏ đi !
).
Các thuộc tính có thể nhận các đối số với những cú pháp khác nhau:
#[attribute = "value"]
#[attribute(key = "value")]
#[attribute(value)]
Các thuộc tính có thể có nhiều giá trị và cũng có thể được phân tách trên nhiều dòng:
#[attribute(value, value2)]
#[attribute(value, value2, value3,
value4, value5)]