我经常发现自己想要在某个 struct 或元组的属性上有一个迭代器,所以我想知道如何正确地做到这一点.
我目前有两个类型为$[(usize, &str)]
的切片,我想判断它们各自的索引(usize
)是否相等,
使得切片的每一次迭代中都有tuple1.0 == tuple2.0
.
我怎么能这样做呢?
我经常发现自己想要在某个 struct 或元组的属性上有一个迭代器,所以我想知道如何正确地做到这一点.
我目前有两个类型为$[(usize, &str)]
的切片,我想判断它们各自的索引(usize
)是否相等,
使得切片的每一次迭代中都有tuple1.0 == tuple2.0
.
我怎么能这样做呢?
迭代器有一个eq()
方法,用于判断两个迭代器是否产生完全相同的项.如果两个切片中的"索引"相同,则可以使用此选项进行比较:
fn indices_match(a: &[(usize, &str)], b: &[(usize, &str)]) -> bool {
a.iter().map(|&(i, _)| i).eq(b.iter().map(|&(i, _)| i))
}
这将隐式判断切片是否具有相同的长度.