Макрос option_env!
Макрос option_env! позволяет получить значение
переменной окружения на этапе компиляции программы.
В отличие от макроса env!, который вызывает
панику при отсутствии переменной, option_env!
возвращает Option<&'static str>: Some
со значением, если переменная задана, и None,
если переменная не найдена. Параметром макрос принимает
имя переменной окружения в виде строкового литерала.
Синтаксис
option_env!("NAME")
Пример
Давайте получим значение переменной окружения "PATH",
которая обычно задана в системе, и выведем результат:
fn main()
{
let res = option_env!("PATH");
println!("{:?}", res);
}
Результат выполнения кода (значение зависит от системы):
Some("/usr/local/bin:/usr/bin:/bin")
Пример
Давайте попробуем получить значение переменной окружения
"MY_NOT_SET_VAR", которой заведомо нет в системе:
fn main()
{
let res = option_env!("MY_NOT_SET_VAR");
println!("{:?}", res);
}
Результат выполнения кода:
None
Пример
Давайте обработаем результат с помощью match,
чтобы подставить значение по умолчанию, если переменная
окружения не задана:
fn main()
{
let res = match option_env!("MY_NOT_SET_VAR")
{
Some(val) => val,
None => "default_value",
};
println!("{}", res);
}
Результат выполнения кода:
"default_value"
Смотрите также
-
макрос
env!,
который получает переменную окружения во время компиляции и паникует при её отсутствии -
функция
var,
которая получает переменную окружения во время выполнения программы -
функция
var_os,
которая получает переменную окружения как OsString во время выполнения -
функция
vars,
которая возвращает итератор по всем переменным окружения