如何在Rust的for循环中初始化多个变量
在Rust的for循环中同时迭代多个变量的解决方案
你需要使用标准库中迭代器的zip方法来实现这个需求,它能把两个迭代器的元素按顺序一一配对,正好符合你想要的效果。
修正后的代码如下:
for (i, j) in (1..=4).zip((10..=16).step_by(2)) { println!("i = {i}, j = {j}"); }
这段代码会输出:
i = 1, j = 10 i = 2, j = 12 i = 3, j = 14 i = 4, j = 16
补充说明
zip方法会将两个迭代器的元素逐组配对,当其中任意一个迭代器耗尽时,循环就会终止。在你的场景中,两个迭代器的长度都是4,所以能完全配对。- 如果遇到两个迭代器长度不一致的情况,标准库的
zip会以较短的迭代器为准,忽略较长迭代器中多余的元素。如果需要处理这种“不等长”的配对,可以使用第三方crateitertools中的zip_longest方法,不过对于你的当前需求,标准库的zip已经足够。
内容的提问来源于stack exchange,提问作者THB
相关产品推荐
相关产品推荐

