Короткое имя через use в Rust
Длинный путь удобен, когда имя встречается
один раз. Если одна и та же функция
нужна часто, путь повторять утомительно.
Строка use переносит имя ближе
и дальше пишут только короткую часть.
Подключим функцию приветствия от корня крейта:
mod greet {
pub fn hello() -> String {
String::from("hi")
}
}
use crate::greet::hello;
fn main() {
let text = hello();
println!("{}", text);
}
После use crate::greet::hello;
в точке входа достаточно имени hello.
Путь crate:: по-прежнему указывает
на корень текущего крейта, как и без
короткой записи.
Можно втянуть целый блок, если нужны несколько имен из одного места:
mod math {
pub fn twice(n: i32) -> i32 {
n * 2
}
pub fn triple(n: i32) -> i32 {
n * 3
}
}
use crate::math::{twice, triple};
fn main() {
let a = twice(2);
let b = triple(2);
println!("{} {}", a, b);
}
Дан блок:
mod labels {
pub fn ok() -> &'static str {
"ok"
}
}
Добавьте строку use так, чтобы
в main можно было писать только
ok() без префикса labels::.
Дан следующий код:
mod store {
pub fn name() -> &'static str {
"app"
}
}
fn main() {
let title = store::name();
println!("{}", title);
}
Перепишите начало файла: оставьте блок
и точку входа, но замените полный путь
на короткое имя через use.
Даны две открытые функции в блоке
math. Запишите одну строку
use, которая втягивает обе
сразу, как в примере с фигурными
скобками.