gpt4 book ai didi

rust - 在Rust中访问数组中的索引越界-编译与运行时错误?

转载 作者:行者123 更新时间:2023-12-03 11:27:09 29 4
gpt4 key购买 nike

我正在阅读Rust书,并且遇到了以下示例:

fn main() {
let a = [1, 2, 3, 4, 5];
let index = 10;

let element = a[index];

println!("The value of element is: {}", element);
}
并在书中说,运行 cargo run后...“该编译未产生任何错误,但该程序导致了运行时错误,并且未成功退出。”我不明白我看到一个编译错误,即使通过 cargo buildrustc src/main.rs进行编译,我也看到该错误。
它们在 this example中是什么意思?为什么这不是编译错误,而是运行时错误?

最佳答案

编译器现在比以前更智能,因此会产生编译错误。
您需要更改代码以使其不那么容易为编译器验证。例如:

fn main() {
let a = [1, 2, 3, 4, 5];
let index = a.len() + 1;

let element = a[index];

println!("The value of element is: {}", element);
}
以上代码在当前版本中引起了 panic 。

关于rust - 在Rust中访问数组中的索引越界-编译与运行时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65384239/

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