Elegant/Best 从迭代中获取最后一个元素的解决方案
Elegant/Best solution to get the last element from an iteration
我正在通过一个频道接收多条消息,在迭代它们之后,我想保留最后一个元素以供进一步使用。我的第一个(可能是坏的!)方法是声明一些变量,然后在每个循环中给它赋值。
let last = 0;
for some in rx_from_channel.iter() {
let last = some;
}
let a = last + 5;
我真的不喜欢这个解决方案 - 是否可以避免在每个循环中分配 last
?
此外,我预计在 for {}
循环中首次使用 let last
之后,在循环上方声明的变量超出范围 - 并且 ļast
之后不可用for {}
循环。编译器另有建议 - 为什么?
我正在通过一个频道接收多条消息,在迭代它们之后,我想保留最后一个元素以供进一步使用。我的第一个(可能是坏的!)方法是声明一些变量,然后在每个循环中给它赋值。
let last = 0;
for some in rx_from_channel.iter() {
let last = some;
}
let a = last + 5;
我真的不喜欢这个解决方案 - 是否可以避免在每个循环中分配 last
?
此外,我预计在 for {}
循环中首次使用 let last
之后,在循环上方声明的变量超出范围 - 并且 ļast
之后不可用for {}
循环。编译器另有建议 - 为什么?