我是 Rust 新手,遇到了以下问题。以下代码编译没有问题,但在运行时崩溃/恐慌,留下以下消息:“尝试添加溢出”。
这是提到的片段:
let mut fib:[u64; 200] = [1; 200];
for i in 2..fib.len() {
fib[i] = fib[i - 2] + fib[i - 1];
}
for i in 0..fib.len() {
print!("{}, ", fib[i]);
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么 i 变量看起来是usize类型而不是u64类型。感谢您的时间和解释。不知怎的,我找不到这方面的正确信息。
在迭代中i = 93
,您尝试添加的值是fib[91] = 7540113804746346429
和fib[92] = 12200160415121876738
。
结果大于 2 64 \xe2\x88\x921,因此u64
类型溢出并且代码发生混乱。
这与类型无关i
。