Модули
Мы видели, как блоки impl позволяют задавать пространство имён функций для типа.
Аналогично mod позволяет задавать пространство имён типам и функциям:
// Copyright 2023 Google LLC
// SPDX-License-Identifier: Apache-2.0
mod foo {
pub fn do_something() {
println!("In the foo module");
}
}
mod bar {
pub fn do_something() {
println!("In the bar module");
}
}
fn main() {
foo::do_something();
bar::do_something();
}
This slide should take about 3 minutes.
- Пакеты предоставляют функциональность и включают файл
Cargo.toml, который описывает, как собрать набор из одного или нескольких крейтов. - Крейты — это дерево модулей: бинарный крейт создаёт исполняемый файл, а библиотечный крейт собирается в библиотеку.
- Модули определяют организацию и область видимости и являются главным предметом этого раздела.