我对Rust中的泛型有一个小问题。我想将Array的长度作为类型参数。
问题:Rust目前支持吗? 该错误消息并不表示缺少功能,而是编程错误。
我想做的事的例子:
fn create_array<C: ConstSize>(){
let arr = [64; C::SIZE];
println!("array.len: {:?}", arr.len());
}
pub trait ConstSize {
const SIZE: usize;
}
带有一些示例实现:
fn main() {
create_array::<Five>();
}
struct Five {}
impl ConstSize for Five {
const SIZE: usize = 5;
}
但是编译器告诉我:
no associated item named 'SIZE' found for type 'C' in the current scope
但是,以下工作原理:
fn create_array(){
let arr = [64; Five::SIZE];
println!("array.len: {:?}", arr.len());
}
See the example on the Rust Playground
感谢您的关注。