gpt4 book ai didi

rust - 一个for循环如何借用迭代器?

转载 作者:行者123 更新时间:2023-11-29 08:04:00 25 4
gpt4 key购买 nike

for ... in 循环如何借用它正在运行的迭代器?例如:

let x = vec![1, 2, 3, 4];
let i = x.iter();
for a1 in i { break; } // iterate over just one "i"
for a2 in i { break; } // continue iterating through "i" here

你不能简单地将 &i 赋给 for,因为这样它就无法将 &Iterator 转换为 Iterator 对象。

最佳答案

您可以使用 Iterator::by_ref借用迭代器并在借用结束后继续使用它:

fn main() {
let x = vec![1, 2, 3, 4];
let mut i = x.iter();
for _ in i.by_ref() { break; } // iterate over just one "i"
for _ in i.by_ref() { break; } // continue iterating through "i" here
assert_eq!(Some(&3), i.next())
}

关于rust - 一个for循环如何借用迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38775536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com