Загружаем изображение…
Многомодульные программы.

Как и в любом другом современном языке программирования в Rust
программа может состоять из множества модулей. Если кода много,
то способ упростить программирование.

Я пока не рассказывал об устройстве каталога, где хранится проект на языке Rust.
Но если вы уже пишите программы на Rust, то знаете, что в каьалоге с проектом,
подкаталог src, где и хранится текст (тексты) программы на Rust.
В простейшем случае там хранится один файл main.rs. Но программа может быть большой,
и приходится разбивать её на несколько моделей. А если модулей слишком много,
то приходится в src делать подкаталоги, т.е. в сущности разбивать модели ещё и на
группы. Вот как может быть устроена такая система модулей я и покажу на конкретном
примере.

В начале покажу схему каталогов
src
--conf
--modules
----new

А теперь посмотрим файловое содержимое каталогов
src:
./main.rs
conf:
./mod.rs
modules:
./mod.rs
./modul1.rs
./modul2.rs
new:
./mod.rs

Теперь не много о названиях моделей.
Модуль с именем main - главный модуль проект.
Модули с именем mod это главные модули в конкретном подкаталоге.
Т.е. связь с модулями подкаталога идёт через модули с именами mod.
Ну а теперь модеражимое всех модулей.
=======================
main.rs:
=======================
mod conf;
mod modules;

fn main() {
println!("В главном модуле");
conf::main_in_conf();....
modules::main_in_modules();....
modules::modul1::in_modul1();
modules::modul2::in_modul2();
modules::new::main_in_modules_new
();
}
=======================
conf/mod.rs:
=======================
pub fn main_in_conf() {
println!("В главном модуле каталога conf
");
}
=======================
modules/mod.rs:
=======================
pub mod modul1;.
pub mod modul2;.
pub mod new;

pub fn main_in_modules() {
println!("В главном модуле каталога module
s");
}
=======================
modules/modul1.rs:
=======================
pub fn in_modul1() {
println!("В модуле modules/modul
1");
}
=======================
modules/modul2.rs:
=======================
pub fn in_modul2() {
println!("В модуле modules/modul
2");
}
=======================
modules/new/modul2.rs:
=======================
pub fn main_in_modules_new() {
println!("В главном модуле каталога modules/ne
w");
}

Результат выполнения программы
В главном модуле
В главном модуле каталога conf
В главном модуле каталога modules
В модуле modules/modul1
В модуле modules/modul2
В главном модуле каталога modules/new

Ну вот, пока всё о многомодульности. Но только пока. Вернёмся к этому вопросу позднее.
Просмотры: 107
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти