RUST / INTEGER OVERFLOW

整数越界
处理台

同一笔算术越过类型边界后,不同 API 会给出五种截然不同的答案。把数值送上处理台,亲眼看清每种选择承诺了什么。

边界不是“很大的数”,而是类型契约的一部分。例如 u8 只容纳 0..=255250 + 10 的数学答案存在,但 u8 装不下。

投料参数

当前契约:u8 · 0..=255
0255

输入必须先能装进选定类型;处理台只比较这一步运算的结果。

处理结果

250u8 + 10u8 = 260(数学结果)越界

怎么选,不靠背口诀

外部输入、余额、计数:通常先考虑 checked_*,让失败进入正常控制流。像素、音量、进度:saturating_* 往往贴近业务含义。环形序号、哈希:回绕可能正是算法的一部分。