Ключевое слово mod
Ключевое слово mod объявляет модуль - именованное
пространство имён, внутри которого можно размещать
функции, структуры, константы и другие модули.
Параметром ключевое слово принимает имя модуля,
за которым следует тело модуля в фигурных скобках
либо точка с запятой для подключения внешнего файла.
Модули помогают организовать код и управлять
видимостью элементов через pub.
Синтаксис
mod module_name
{
// тело модуля
}
Также модуль можно подключить из отдельного файла:
mod module_name;
Пример
Давайте объявим модуль math с функцией сложения
и вызовем её из функции main:
mod math
{
pub fn add(a: i32, b: i32) -> i32
{
a + b
}
}
fn main()
{
let res = math::add(2, 3);
println!("{}", res);
}
Результат выполнения кода:
5
Пример
Давайте объявим вложенный модуль inner внутри
модуля outer и обратимся к его функции:
mod outer
{
pub mod inner
{
pub fn hello() -> &'static str
{
"abcde"
}
}
}
fn main()
{
let res = outer::inner::hello();
println!("{}", res);
}
Результат выполнения кода:
"abcde"
Пример
Давайте объявим модуль utils с публичной константой
и приватной функцией, доступной только внутри модуля:
mod utils
{
pub const VALUE: i32 = 12345;
fn secret() -> i32
{
42
}
pub fn call_secret() -> i32
{
secret()
}
}
fn main()
{
println!("{}", utils::VALUE);
println!("{}", utils::call_secret());
}
Результат выполнения кода:
12345
42