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

Сравнение разных типов в Rust

Сравнение в условии требует один и тот же тип слева и справа. Целое число и дробное знаком равенства не сравнивают: компилятор не собирает такую программу, даже если значения «похожи» по смыслу.

Чтобы сравнить разные виды чисел, сначала приводят их к одному типу теми приемами, которые уже встречались в разделе про числа. Без приведения условие остается ошибкой на этапе сборки.

Попробуем сравнить целое с дробным литералом:

let n = 5; if n == 5.0 { println!("match"); }

Та же проблема, если обе стороны - переменные разных видов:

let count = 10; let rate = 10.0; if count == rate { println!("match"); }

Целое и строку тоже не сравнивают. Число 5 и строка "5" относятся к разным типам, такая проверка не собирается.

Скажите, соберется ли программа, если в условии сравнить 3 и 3.0 знаком равенства.

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

let a = 1; let b = 1.0;

Скажите, можно ли их сравнить в условии без приведения типов.

Скажите, почему знаки больше и меньше тоже требуют один тип у обоих операндов.

Скажите, соберется ли программа, если сравнить число 5 и строку "5" знаком равенства.

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