Макрос env!
Макрос env! возвращает значение
переменной окружения на этапе компиляции.
Он принимает один параметр - имя переменной
окружения в виде строкового литерала.
Если переменная не найдена на момент сборки,
компиляция завершится ошибкой.
Поскольку макрос вычисляется во время
компиляции, его результат имеет тип
&'static str и не требует
обработки ошибок во время выполнения.
Для получения переменной во время
выполнения используйте функцию var.
Синтаксис
env!("NAME")
env!("NAME", "error message")
Пример
Давайте получим значение переменной
окружения PATH во время компиляции
и выведем его на экран:
fn main()
{
let path = env!("PATH");
println!("{}", path);
}
Результат выполнения кода:
"/usr/local/bin:/usr/bin:/bin"
Пример
Давайте получим значение переменной
окружения HOME и проверим,
что оно не пустое:
fn main()
{
let home = env!("HOME");
let is_empty = home.is_empty();
println!("{}", is_empty);
}
Результат выполнения кода:
false
Пример
Давайте передадим своё сообщение об ошибке, которое будет показано, если переменная окружения не найдена:
fn main()
{
let value = env!("MY_VAR", "MY_VAR is not set");
println!("{}", value);
}
Если переменная MY_VAR не задана
на момент компиляции, компилятор выдаст
ошибку с текстом "MY_VAR is not set".
Смотрите также
-
макрос
option_env!,
который возвращает переменную окружения как Option -
функция
var,
которая возвращает переменную окружения во время выполнения -
функция
vars,
которая возвращает итератор по всем переменным окружения -
функция
set_var,
которая устанавливает переменную окружения