gpt4 book ai didi

rust - 预期算术溢出,但不会发生

转载 作者:行者123 更新时间:2023-12-03 11:42:57 25 4
gpt4 key购买 nike

(我正在使用Rust 1.44.1)
以下示例由于算术溢出(我理解原因)而无法构建( Debug模式):

fn main() {
let i: u8 = 255 + 1;
}
error: this arithmetic operation will overflow
--> src/main.rs:2:17
|
2 | let i: u8 = 255 + 1;
| ^^^^^^^ attempt to add with overflow
|
= note: `#[deny(arithmetic_overflow)]` on by default
尽管此示例正确构建:
fn main() {
let i: u8 = 255;
let _j: u8 = i + 1;
}
由于 i是不可变的,因此我期望与第一个示例相同的错误。
我是否缺少某些内容,或者这是编译器无法处理的内容?

最佳答案

首先,应该注意的是,警告是在尽力而为的基础上发出的。
一般而言,良好的警告政策是:

  • 为避免误报:对用户而言,没有比被警告更多的烦恼了,那就是没有问题。
  • 因此可能会有假阴性:应该触发警告但未被检测到的情况。

  • 同样,出于性能方面的考虑,分析可能仅限于最基本的模式,这再次意味着将不会检测到某些情况。

    话虽如此,警告已在 Rust 1.45上正确触发。
    因此,我相信您只是遇到了1.44.1版本的限制。

    关于rust - 预期算术溢出,但不会发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63055397/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com