gpt4 book ai didi

for-loop - 优雅/最佳解决方案,从迭代中获取最后一个元素

转载 作者:行者123 更新时间:2023-12-03 11:32:25 28 4
gpt4 key购买 nike

我正在通过一个 channel 接收多个消息,并在对其进行迭代之后,我想保留最后一个元素以供进一步使用。我的第一个(可能很糟糕!)方法是声明一些变量,然后在每个循环中分配它。

let last = 0;
for some in rx_from_channel.iter() {
let last = some;
}

let a = last + 5;
我真的不喜欢这种解决方案-是否可以避免在每个循环中分配 last
进一步,我希望在第一次在 let last循环内使用 for {}之后,在循环上方声明的变量超出范围-并且 ļast循环之后根本不可用 for {}。编译器建议否则-为什么?

最佳答案

您可以这样做:

let last = rx_from_channel.iter().last().unwrap_or_else(|| &0);
let a = last + 5;
参见 last()

fn last(self) -> Option<Self::Item>
Consumes the iterator, returning the last element.

关于for-loop - 优雅/最佳解决方案,从迭代中获取最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66145795/

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