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

Приоритет логических операторов в Rust

В одном выражении может стоять несколько логических знаков. Язык выполняет их не слева направо подряд, а по правилам приоритета: сначала отрицание, затем И, затем Или.

Сравним выражение без скобок и запись, где порядок задают явно:

println!("{}", !false && true); println!("{}", !(false && true));

В первой строке сначала меняют false на да, потом применяют И к true - итог да. Во второй скобки заставляют сначала считать И между false и true, получается нет, затем отрицание дает да.

И сильнее Или: без скобок сначала связывают соседние значения знаком И:

println!("{}", true || false && false); println!("{}", (true || false) && false);

Скажите, какой знак выполнится первым в выражении !true || false.

Скажите результат выражения false && true || true при обычных правилах приоритета.

Даны переменные:

let a = true; let b = false; let c = true;

Выведите значение выражения !a && b || c без скобок.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить