【发布时间】:2015-12-01 14:16:38
【问题描述】:
我刚刚开始学习Rust。在我使用这种语言的第一步中,我发现了一个奇怪的行为,当在 main 或另一个函数中执行迭代时,如下例所示:
fn myfunc(x: &Vec<f64>) {
let n = x.len();
println!(" n: {:?}", n);
for i in -1 .. n {
println!(" i: {}", i);
}
}
fn main() {
for j in -1 .. 6 {
println!("j: {}", j);
}
let field = vec![1.; 6];
myfunc(&field);
}
虽然main 中的循环正确显示,但myfunc 中的循环没有打印任何内容,我得到以下输出:
j: -1
j: 0
j: 1
j: 2
j: 3
j: 4
j: 5
n: 6
这种行为的原因是什么?
【问题讨论】: