Rust — условные проверки конфигурации
Rust использует условные проверки конфигурации (cfg), чтобы различать среду, которая используется для запуска программ Rust. Это делается с помощью двух атрибутов:
- атрибут cfg (используется в позициях атрибутов)
- cfg! макрос (используется в логических выражениях)
Атрибут cfg (#cfg) используется, когда мы проверяем атрибуты в позиции атрибута, и включает условную компиляцию без удаления каких-либо кодов. С другой стороны, cfg! макрос используется, когда нам нужно использовать значение макроса в логических выражениях, таких как оценка литералов True или False во время выполнения. Какие бы выражения ни требовалось вычислить, cfg! макрос делает это независимо от всех условий.
Пример:
Rust
// Rust code for Configuration conditional checks #[cfg(target_os = "linux")] fn checking_on_linux() { println!( "Currently on linux!" ); } #[cfg(not(target_os = "linux"))] fn checking_on_linux() { println!( "Not on linux!" ); } fn main() { checking_on_linux(); if cfg!(target_os = "linux" ) { println!( "Running on linux" ); } else { println!( "Not Running on linux" ); } } |
Выход:
Объяснение:
В этом примере мы объявляем функцию check_on_linux(), которая проверяет, является ли целевая операционная система Linux или нет. Мы используем атрибут cfg, чтобы проверить, является ли операционная система Linux или нет, объявив переменную target_os как «Linux». Далее мы объявляем и описываем еще один атрибут cfg, который проверяет, является ли операционная система чем-то отличным от Linux или нет. После запуска кода в IDE на основе терминала мы видим, что вывод добавлен на экран.