РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1032 of 1245 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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить