std.overflow 包

功能介绍

overflow 包提供了整数运算溢出时的处理能力。

在整数运算时,若运算结果大于其类型最大值或小于其类型最小值即是溢出。默认情况下,出现溢出时会抛出异常。

overflow 包提供了四种溢出处理策略,并定义了对应的接口,列举如下:

策略接口描述
返回 OptionCheckedOp当整数运算出现溢出,返回 None
饱和SaturatingOp当计算结果大于目标类型的 MAX 值,返回 MAX 值;当计算结果小于目标类型的 MIN 值,返回 MIN 值。
抛出异常ThrowingOp当整数运算出现溢出,抛出异常。
高位截断WrappingOp当整数运算出现溢出,将运算结果中超出目标类型位数的高位截断。

overflow 包中通过扩展为所有的整数类型提供了这些接口的实现,用户可以用同样的方式为其他类型实现 overflow 接口。

API 列表

接口

接口名功能
CheckedOp当整数运算出现溢出,返回 None
SaturatingOp当整数运算出现溢出,饱和处理。
ThrowingOp当整数运算出现溢出,抛出异常。
WrappingOp当整数运算出现溢出,将运算结果中超出目标类型位数的高位截断。

异常类

类名功能
OvershiftException移位运算时移位位数超过操作数位数时抛出的异常。
UndershiftException移位运算时移位位数小于 0 时抛出的异常。