相关疑难解决方法(0)

如何迭代和过滤数组?

我正在尝试编写一个涉及过滤和折叠数组的程序.我一直在使用The Rust Programming Language,第一版作为参考,但我不明白当我在数组上形成迭代器时会发生什么.这是一个例子:

fn compiles() {
    let range = (1..6);
    let range_iter = range.into_iter();
    range_iter.filter(|&x| x == 2);
}

fn does_not_compile() {
    let array = [1, 4, 3, 2, 2];
    let array_iter = array.into_iter();
    //13:34 error: the trait `core::cmp::PartialEq<_>` is not implemented for the type `&_` [E0277]
    array_iter.filter(|&x| x == 2);
}

fn janky_workaround() {
    let array = [1, 4, 3, 2, 2];
    let array_iter = array.into_iter();
    // Note the dereference in the lambda body
    array_iter.filter(|&x| …
Run Code Online (Sandbox Code Playgroud)

rust

40
推荐指数
2
解决办法
2万
查看次数

标签 统计

rust ×1