https://doc.rust-lang.org/std/slice/struct.ChunksMut.html有循环方法: https : //doc.rust-lang.org/std/iter/struct.Cycle.html#method .cycle仅在以下情况下有效Self: Clone
但是,ChunksMut没有实现Clone,因此我不能这样做:
fn main() {
let a = &[1,2,3,4,5,6];
let mut chunks = a.chunks_mut(2);
let cycle = chunks.cycle();
for c in cycle {
}
}
Run Code Online (Sandbox Code Playgroud)
cycle()如果ChunksMut从不存在,为什么该方法存在Clone?
ChunksMut 实现Iterator特质.
impl<'a, T> Iterator for ChunksMut<'a, T>
Run Code Online (Sandbox Code Playgroud)
来自Traitcycle()的默认实现Iterator。cycle有一个 predicate( where Self: Clone) 限制对不可克隆的cycle类型的调用。
fn cycle(self) -> Cycle<Self>
where
Self: Clone,
Run Code Online (Sandbox Code Playgroud)