extern crate foo
indica que desea vincular con una biblioteca externa y trae el nombre de la caja de nivel superior al alcance (equivalente a use foo
). A partir de Rust 2018, en la mayoría de los casos no necesitará usar extern crate
más porque Cargo informa al compilador sobre qué cajas están presentes. (Hay una o dos excepciones )
use bar
es una forma abreviada de hacer referencia a símbolos completos.
Teóricamente, el idioma no es necesario use
: siempre puedes calificar completamente los nombres, ¡pero escribir std::collections::HashMap.new(...)
sería muy tedioso! En su lugar, solo puede escribir use std::collections::HashMap
una vez y luego HashMap
se referirá a eso.
extern crate foo;
? Las cajas y los módulos son conceptos separados en Rust, es posible que desee echar un vistazo a "Terminología básica: cajas y módulos" que explica la diferencia entre los dos (aunque personalmente encuentro los ejemplos a continuación demasiado detallados).