Ответ 1
extern crate foo
указывает, что вы хотите связать с внешней библиотекой, и вводит имя ящика верхнего уровня в область видимости (use foo
). Начиная с Rust 2018, в большинстве случаев вам больше не нужно будет использовать extern crate
, потому что Cargo информирует компилятор о наличии ящиков. (Есть одно или два исключения)
use bar
- это сокращение для ссылки на полностью определенные символы.
Теоретически язык не нуждается в use
- вы всегда можете просто полностью квалифицировать имена, но ввод std::str::String.new(...)
будет очень утомительным! Вместо этого вы можете просто набрать use std::str::String
один раз, и тогда String
будет ссылаться на это. (оператор use
для String
является частью прелюдии, поэтому вы обычно этого не видите)