Avatar ·

Quelle est la différence entre `use` et `extern crate` en Rust ?

Bonjour ! J'ai commencé à étudier Rust récemment et je me suis embrouillé avec les imports. Dans certains exemples, je vois `extern crate`, et dans d'autres, `use`. Par exemple, j'écris un programme simple qui utilise la crate `rand` pour générer des nombres aléatoires : ```rust // Variante 1 extern crate rand; use rand::Rng; fn main() { let mut rng = rand::thread_rng(); let n: u32 = rng.gen_range(1..101); println!("Nombre aléatoire : {}", n); } ``` Mais j'ai aussi vu du code où `extern crate` n'est pas utilisé du tout, et on écrit directement `use` : ```rust // Variante 2 use rand::Rng; fn main() { let mut rng = rand::thread_rng(); let n: u32 = rng.gen_range(1..101); println!("Nombre aléatoire : {}", n); } ``` Les deux variantes fonctionnent, mais je ne comprends pas la différence. Quand faut-il écrire `extern crate`, et quand `use` suffit-il ? Peut-être que `extern crate` est une construction obsolète ? Ou est-elle nécessaire pour des cas particuliers ? Expliquez-moi, s'il vous plaît, avec des exemples. Merci d'avance !