我正在尝试为2D板实现一个迭代器。这
Board
属于类型
[[Option<u8>; SIZE]; SIZE]
我创建了一个迭代器,用于遍历给定长度的正方形。
struct SquareIterator<'a> {
board: &'a Board,
sqr_size: usize,
row: usize,
col: usize,
row_iter: usize,
col_iter: usize,
}
为了方便起见,我想我可以实现
IntoIterator
在…上
板
穿过整个木板
SquareIterator
属于
sqr_size = SIZE
和
row=col=0
。
所以第一次尝试:
impl<'a> IntoIterator for Board<'a> {
type IntoIter = SquareIterator<'a>;
type Item = <SquareIterator<'a> as Iterator>::Item;
fn into_iter(self) -> Self::IntoIter { /*(...)*/ }
}
毫不奇怪,它没有编译:
error[E0107]: struct takes 0 lifetime arguments but 1 lifetime argument was supplied
董事会确实不需要终身争论。
但不知怎么的,我想把
方形迭代器
无论一生
板
有我不知道如何做到这一点。