Сравнение разных типов в 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"
знаком равенства.