Quelle est la différence entre `use` et `extern crate` en Rust ? Quand utiliser quoi ?
Salut, collègues ! J'ai récemment commencé à apprendre Rust et je me suis embrouillé avec deux constructions clés : `use` et `extern crate`. Dans la documentation, il est écrit qu'elles sont toutes deux liées à l'importation, mais je ne comprends pas quand appliquer l'une ou l'autre.
Voici mon code :
```rust
// Cela fonctionne
extern crate rand;
use rand::Rng;
fn main() {
let secret_number = rand::thread_rng().gen_range(1..101);
println!("Nombre secret : {}", secret_number);
}
```
Mais si j'écris comme ça, sans `extern crate` :
```rust
use rand::Rng;
fn main() {
let secret_number = rand::thread_rng().gen_range(1..101);
println!("Nombre secret : {}", secret_number);
}
```
Le compilateur se plaint : `can't find crate for rand`. Pourquoi `use` est-il nécessaire si sans `extern crate` rien ne fonctionne ? Et inversement — si j'écris seulement `extern crate rand`, la fonction `gen_range` ne sera pas accessible sans `use`.
J'ai aussi vu que dans certains projets (par exemple, sur Rust 2018), les gens n'écrivent pas du tout `extern crate`, mais utilisent simplement `use`. Pourquoi ?
No answers yet.
Connectez-vous pour laisser une réponse
Blogs