【问题标题】:iterate over all but the last element遍历除最后一个元素之外的所有元素
【发布时间】:2023-01-05 15:47:39
【问题描述】:

在 Rust 中,我如何遍历除最后一个 n 元素之外的所有元素?

[0, 1, 2, 3, 4].iter().???(n)


Use all but the last element from an iterator 相似但不相同,后者实际上是关于匹配块大小。

【问题讨论】:

  • 链接的问答在多大程度上不够,特别是接受的答案建议偷看下一个项目?

标签: rust


【解决方案1】:

tl;博士takecount - n迭代

fn print_elements_not_last_n(elems: &[i32], n: usize) {
    for elem in elems.iter().take(elems.iter().count() - n) {
        println!("{:?}", elem);
    }
}

fn main() {
    let elems: [i32; 5] = [0, 1, 2, 3, 4];

    print_elements_not_last_n(&elems, 1);
    println!();
    print_elements_not_last_n(&elems, 2);
}

这打印

0
1
2
3

0
1
2

当然,这会迭代 Iterable 两次!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 2011-02-04
    相关资源
    最近更新 更多