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

Макрос 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,
    которая возвращает итератор по всем переменным окружения
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить