标签: rust integer-overflow
我的印象是整数类型的.checked_*(_)方法可以帮助避免溢出。但是,.checked_shl(u32)方法很乐意转移出上面示例的最后一点。
.checked_*(_)
.checked_shl(u32)
我的印象错了吗?那个 for 的方法是什么?
(还想添加它以避免轮班溢出,可以检查((~0) >> rhs) >= self至少是否为无符号类型)
((~0) >> rhs) >= self
答案 0 :(得分:5)
因为它仅检查班次金额。来自docs,
如果None大于或等于rhs中的位数,则 self。
None
rhs
self。
self
因此,通过设计,它可以让你移出位,它只是不允许你使用无效的移位量(或者,它允许你,但你得到None)。