Avatar ·

什么是 Rust 中的 crate 属性以及它们应该放在代码的哪里?

大家好!我刚开始学习 Rust,正在尝试理解 crate 属性。官方文档说有一些属性适用于整个 crate,但我不明白这意味着什么以及应该把它们放在哪里。 我有一个通过 `cargo new my_project` 创建的简单项目。里面有一个包含 `main` 函数的 `main.rs` 文件。我读到可以使用 `#![allow(unused_variables)]` 属性来让编译器不警告未使用的变量。但是当我写: ```rust #![allow(unused_variables)] fn main() { let x = 5; let y = 10; println!("Hello!"); } ``` 编译器警告说该属性不适用于表达式。我尝试使用 `#[allow(unused_variables)]`(只有一个感叹号),然后警告只对一个表达式消失了,而不是整个文件。 `#![...]` 和 `#[...]` 有什么区别?为什么我的属性没有作为 crate 属性生效?以及应该具体添加在哪里?