【发布时间】:2022-12-17 23:37:42
【问题描述】:
我正在尝试将数组数组传递给 Rust 中的通用函数,但是我在这样做时遇到了麻烦。
这是我的代码:
pub const T: [[u8; 3]; 2] = [[0, 1, 0], [1, 1, 1]];
pub const L: [[u8; 3]; 2] = [[0, 0, 1], [1, 1, 1]];
pub const S: [[u8; 2]; 2] = [[1, 1], [1, 1]];
pub fn insert_shape<T: Iterator>(&mut self, shape: T)
{
for (i, item) in shape.iter().enumerate()
{
for (j, element) in item.iter().enumerate()
{
self.board.set_element(i, j, element);
}
}
}
这给了我一个错误,说类型 T 没有一个叫做 iter 的方法。我怎样才能解决这个问题?
【问题讨论】:
-
最简单的方法是传递数组。
-
@ChayimFriedman 没错,但是我的数组大小不同,有没有办法在不使用泛型的情况下传递数组?也许使用指针之类的?
-
常量泛型?
-
如果没有某种形式的泛型,我无法想到。
标签: rust