一次迭代多个变量,重叠(slice::windows)或不重复()可能很有用slice::chunks.
这仅适用于切片; 是否可以为迭代器执行此操作,为方便起见使用元组?
可以写下以下内容:
for (prev, next) in some_iter.windows(2) {
...
}
Run Code Online (Sandbox Code Playgroud)
如果没有,它是否可以作为现有迭代器的特征实现?
我有一个数字向量,并使用该windows(2)方法创建一个迭代器,为我提供相邻对。例如,向量[1, 2, 3]被变换为[1, 2], [2, 3]。我想使用该find方法来查找满足特定条件的切片:
fn step(g: u64) -> Option<(u64, u64)> {
let prime_list: Vec<u64> = vec![2, 3, 5, 7]; //For example
if prime_list.len() < 2 {
return None;
}
let res = prime_list.windows(2).find(|&&[a, b]| b - a == g)?;
//...
None
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
fn step(g: u64) -> Option<(u64, u64)> {
let prime_list: Vec<u64> = vec![2, 3, 5, 7]; //For example
if prime_list.len() < 2 {
return None;
}
let res …Run Code Online (Sandbox Code Playgroud)