Avatar ·

Rust中 `use` 和 `extern crate` 有什么区别?

你好!我最近开始学习 Rust,对导入感到困惑。在一些例子中我看到 `extern crate`,而在另一些中则是 `use`。例如,我写了一个使用 `rand` crate 生成随机数的简单程序: ```rust // 选项 1 extern crate rand; use rand::Rng; fn main() { let mut rng = rand::thread_rng(); let n: u32 = rng.gen_range(1..101); println!("随机数: {}", n); } ``` 但我也看到过完全不用 `extern crate` 而直接写 `use` 的代码: ```rust // 选项 2 use rand::Rng; fn main() { let mut rng = rand::thread_rng(); let n: u32 = rng.gen_range(1..101); println!("随机数: {}", n); } ``` 两个选项都能工作,但我不明白区别在哪里。什么时候需要写 `extern crate`,什么时候只用 `use` 就够了?也许 `extern crate` 是过时的结构?还是它用于某些特殊情况?请用例子解释一下。提前谢谢!