我有一个变量,我对其进行了很多算术运算。
我的代码是这样的:
let a: u32 = 3;
let res = (a*2) - 42
当
a
太低时我添加了溢出,所以我不得不使用saturating_sub()
来解决问题:
let a: u32 = 3;
let res = (a * 2).saturating_sub(42);
这确实工作得很好,但是
saturating_sub
的可读性比 -
稍差。
因为我有很多这样的操作,并且在每种情况下,我都希望
a
饱和。我想知道是否可以定义a
应该始终饱和。并且不要将每个 -
替换为 saturate_sub
。
std::num::Saturating
,但是它只实现与其他 Saturating
的操作,而不是底层原语:
let a: u32 = Saturating(3);
let res = (a * Saturating(2)) - Saturating(42);