Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpMdIn 58 of 288 menu
◀ ▶

Модуль в одном файле в Rust

Модуль можно написать прямо в том же файле, где лежит точка входа. Блок с именем складывает функции внутрь, а снаружи к ним идут через имя модуля и два двоеточия.

Соберем приветствие в отдельном блоке и прочитаем его из точки входа:

mod greet { pub fn hello() -> String { String::from("hi") } } fn main() { let text = greet::hello(); println!("{}", text); }

Функция внутри блока возвращает новую строку. У нее стоит пометка, которая открывает имя наружу модуля, иначе точка входа не смогла бы к ней обратиться. Путь greet::hello читается как имя блока и имя функции.

В одном файле можно держать несколько блоков рядом. Каждый задает свой префикс для вложенных имен:

mod greet { pub fn hello() -> String { String::from("hi") } } mod math { pub fn twice(n: i32) -> i32 { n * 2 } } fn main() { let text = greet::hello(); let count = math::twice(3); println!("{} {}", text, count); }

Дан блок:

mod labels { pub fn tag() -> &'static str { "ok" } }

Допишите точку входа: сохраните результат labels::tag в переменную и выведите его.

Дан фрагмент:

mod store { fn hidden() -> i32 { 1 } }

Скажите, сможет ли точка входа обратиться к store::hidden без изменений и почему.

Даны два блока greet и math из примера выше. Напишите одну строку вывода, где сначала идет текст приветствия, затем удвоенное число 3.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить