小编Avi*_*jit的帖子

Rust中for循环的确切定义是什么?

我来自C(在较小程度上,C++)背景.我写了以下代码片段:

fn main() {
    let my_array = [1, 2, 3];
    let print_me = |j| println!("= {}", j);
    for k in my_array.iter() {
        print_me(k);
    }
}
Run Code Online (Sandbox Code Playgroud)

这编译并按预期运行,但后来我指定了传递给闭包的参数的类型print_me:

fn main() {
    let my_array = [1, 2, 3];
    let print_me = |j: i32| println!("= {}", j);
    for k in my_array.iter() {
        print_me(k);
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到了编译错误:

error[E0308]: mismatched types
 --> src/main.rs:6:22
  |
6 |             print_me(k);
  |                      ^
  |                      |
  |                      expected i32, found &{integer}
  |                      help: consider dereferencing the borrow: `*k`
  | …
Run Code Online (Sandbox Code Playgroud)

iterator for-loop reference rust

5
推荐指数
2
解决办法
748
查看次数

标签 统计

for-loop ×1

iterator ×1

reference ×1

rust ×1