我最近尝试使用不同的迭代方式来测试Rust的循环性能时遇到了这个有趣的错误。如果我使用以下代码进行迭代,我将得到“&[i32; 1000000]不是迭代器;也许尝试调用.iter()或类似的方法”的错误提示。我知道我可以直接使用iter(),但是我正在尝试找出哪种更快,是iter()还是&array。
我的问题是:为什么我不能使用
extern crate time;
fn main() {
let array: [i32; 1000000] = [0; 1000000]; // This will produce an error
// let array: [i32; 32] = [0; 32] produces no error
let start_time = time::precise_time_s();
for _x in &array {
}
println!("{}", time::precise_time_s() - start_time);
}
我的问题是:为什么我不能使用
&array
迭代超过32个元素的数组?