Загружаем изображение…
Многомодульные программы.
Как и в любом другом современном языке программирования в 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!("В главном модуле каталога modules");
}
=======================
modules/modul1.rs:
=======================
pub fn in_modul1() {
println!("В модуле modules/modul1");
}
=======================
modules/modul2.rs:
=======================
pub fn in_modul2() {
println!("В модуле modules/modul2");
}
=======================
modules/new/modul2.rs:
=======================
pub fn main_in_modules_new() {
println!("В главном модуле каталога modules/new");
}
Результат выполнения программы
В главном модуле
В главном модуле каталога conf
В главном модуле каталога modules
В модуле modules/modul1
В модуле modules/modul2
В главном модуле каталога modules/new
Ну вот, пока всё о многомодульности. Но только пока. Вернёмся к этому вопросу позднее.
Как и в любом другом современном языке программирования в 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!("В главном модуле каталога modules");
}
=======================
modules/modul1.rs:
=======================
pub fn in_modul1() {
println!("В модуле modules/modul1");
}
=======================
modules/modul2.rs:
=======================
pub fn in_modul2() {
println!("В модуле modules/modul2");
}
=======================
modules/new/modul2.rs:
=======================
pub fn main_in_modules_new() {
println!("В главном модуле каталога modules/new");
}
Результат выполнения программы
В главном модуле
В главном модуле каталога conf
В главном модуле каталога modules
В модуле modules/modul1
В модуле modules/modul2
В главном модуле каталога modules/new
Ну вот, пока всё о многомодульности. Но только пока. Вернёмся к этому вопросу позднее.
Просмотры: 107