extern crate foo
wskazuje, że chcesz połączyć się z biblioteką zewnętrzną i wprowadza nazwę skrzynki najwyższego poziomu do zakresu (odpowiednik use foo
). Jak Rust 2018, w większości przypadków nie trzeba używać extern crate
już ponieważ Cargo informuje kompilator o tym, co skrzynie są obecne. (Jest jeden lub dwa wyjątki )
use bar
to skrót odnoszący się do w pełni kwalifikowanych symboli.
Teoretycznie język nie potrzebuje use
- zawsze możesz po prostu w pełni zakwalifikować nazwy, ale pisanie std::collections::HashMap.new(...)
byłoby bardzo nudne! Zamiast tego możesz wpisać use std::collections::HashMap
jeden raz, a następnie HashMap
odnieść się do tego.
extern crate foo;
? Skrzynki i moduły to osobne koncepcje w Rusta, warto rzucić okiem na „Podstawową terminologię: skrzynki i moduły”, która wyjaśnia różnicę między nimi (osobiście uważam poniższe przykłady za zbyt szczegółowe).