РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
336 of 1245 menu

Метод checked_sub

Метод checked_sub выполняет вычитание одного числа i32 из другого, но в отличие от обычного оператора -, возвращает значение типа Option<i32>. Если результат вычитания укладывается в диапазон допустимых значений типа i32, метод возвращает Some(результат). Если же происходит переполнение (выход за границы диапазона), метод возвращает None. Параметром метод принимает число, которое нужно вычесть.

Синтаксис

i32.checked_sub(rhs)

Пример

Давайте выполним обычное вычитание двух чисел, результат которого точно укладывается в диапазон типа i32:

fn main() { let res = 10i32.checked_sub(5); println!("{:?}", res); }

Результат выполнения кода:

Some(5)

Пример

Давайте рассмотрим ситуацию, когда при вычитании происходит переполнение. Вычтем из минимального значения i32 единицу:

fn main() { let min_val = i32::MIN; let res = min_val.checked_sub(1); println!("{:?}", res); }

Результат выполнения кода:

None

Пример

Давайте используем checked_sub вместе с конструкцией match для обработки возможного переполнения:

fn main() { let a = 100i32; let b = 200i32; match a.checked_sub(b) { Some(res) => println!("Result: {}", res), None => println!("Overflow occurred"), } }

Результат выполнения кода:

Result: -100

Смотрите также

  • метод checked_add,
    который выполняет сложение с проверкой переполнения
  • метод checked_mul,
    который выполняет умножение с проверкой переполнения
  • метод wrapping_sub,
    который выполняет вычитание с циклическим переходом
  • метод saturating_sub,
    который выполняет вычитание с насыщением
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить