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` 是过时的结构?还是它用于某些特殊情况?请用例子解释一下。提前谢谢!