Метод saturating_add
Метод saturating_add выполняет сложение двух чисел типа i32
с насыщением. Если результат сложения выходит за пределы допустимого
диапазона значений i32, метод возвращает ближайшее граничное
значение вместо паники или переполнения. Параметром метод принимает
число, которое нужно прибавить к текущему значению.
Диапазон значений i32 составляет от -2147483648
до 2147483647. Если при сложении результат превышает
максимальное значение, возвращается 2147483647. Если
результат меньше минимального значения, возвращается
-2147483648.
Синтаксис
i32.saturating_add(rhs)
Пример
Давайте сложим число 100 и число 200:
fn main()
{
let res = 100i32.saturating_add(200);
println!("{}", res);
}
Результат выполнения кода:
300
Пример
Давайте сложим максимальное значение i32 с числом 1:
fn main()
{
let res = 2147483647i32.saturating_add(1);
println!("{}", res);
}
Результат выполнения кода:
2147483647
Как видите, вместо переполнения метод вернул максимальное
значение 2147483647.
Пример
Давайте сложим минимальное значение i32 с числом -1:
fn main()
{
let res = (-2147483648i32).saturating_add(-1);
println!("{}", res);
}
Результат выполнения кода:
-2147483648
Как видите, вместо переполнения метод вернул минимальное
значение -2147483648.
Смотрите также
-
метод
checked_add,
который выполняет сложение с проверкой переполнения -
метод
wrapping_add,
который выполняет сложение с циклическим переполнением -
метод
overflowing_add,
который выполняет сложение и возвращает флаг переполнения -
метод
saturating_sub,
который выполняет вычитание с насыщением