update ch03-02 fix #628

This commit is contained in:
KaiserY 2022-07-15 12:45:24 +08:00 committed by GitHub
parent b2989c1f8b
commit 2dbec4631f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -66,7 +66,7 @@ let guess: u32 = "42".parse().expect("Not a number!");
> 在 release 构建中Rust 不检测溢出,相反会进行一种被称为二进制补码包装(*twos complement wrapping*)的操作。简而言之,值 `256` 变成 `0`,值 `257` 变成 `1`,依此类推。依赖整型溢出被认为是一种错误,即便可能出现这种行为。如果你确实需要这种行为,标准库中有一个类型显式提供此功能,[`Wrapping`][wrapping]。
> 为了显式地处理溢出的可能性,你可以使用标准库在原生数值类型上提供的以下方法:
> - 所有模式下都可以使用 `wrapping_*` 方法进行包装,如 `wrapping_add`
> - 如果 `check_*` 方法出现溢出,则返回 `None`
> - 如果 `checked_*` 方法出现溢出,则返回 `None`
> - 用 `overflowing_*` 方法返回值和一个布尔值,表示是否出现溢出
> - 用 `saturating_*` 方法在值的最小值或最大值处进行饱和处理