是否可以迭代元组?

Ahm*_*eed 18 iteration tuples rust

我想使用循环遍历元组,就像在 Python 中一样。在 Rust 中可能吗?

let tup1 = (1, 2, 3);
for i in tup1.iter() {
    println!("{}", i);
}          
Run Code Online (Sandbox Code Playgroud)

Pet*_*all 11

元组的每个元素的类型可以不同,因此您不能迭代它们。元组甚至不能保证以与类型定义相同的顺序存储它们的数据,因此即使您Iterator自己为它们实现,它们也不是有效迭代的良好候选者。

但是,数组完全等同于元组,所有元素都属于相同类型:

let tup = [1, 2, 3];
for i in tup.iter() {
    println!("{}", i);
}
Run Code Online (Sandbox Code Playgroud)

也可以看看:

  • 我不明白为什么“(T)”、“(T, T)”、“(T, T, ...)”等类型的元组无法实现“IntoIterator”。 (3认同)