Arrays 如何在Rust中为数组长度引入类型参数?
我有一个关于Rust中的泛型的小问题。我想让数组的长度成为一个类型参数 问题:Rust目前是否支持这一点? 错误消息并不表示缺少功能,而是表示编程错误 我想做的示例:Arrays 如何在Rust中为数组长度引入类型参数?,arrays,generics,rust,Arrays,Generics,Rust,我有一个关于Rust中的泛型的小问题。我想让数组的长度成为一个类型参数 问题:Rust目前是否支持这一点? 错误消息并不表示缺少功能,而是表示编程错误 我想做的示例: fn create_array<C: ConstSize>(){ let arr = [64; C::SIZE]; println!("array.len: {:?}", arr.len()); } pub trait ConstSize { const SIZE: usize; } 感谢
fn create_array<C: ConstSize>(){
let arr = [64; C::SIZE];
println!("array.len: {:?}", arr.len());
}
pub trait ConstSize {
const SIZE: usize;
}
感谢您的关注。由于编译器错误(),相关常量无法用于指定数组的长度。它看起来像编译器错误。这回答了我的问题。你可以把它写进一个单独的答案中。区别是相当微妙的:链接的问题问一般如何解决这个问题,答案是Rust的未来特征,但这个问题中的具体解决方案现在应该实际可行(但这是一个bug)
fn main() {
create_array::<Five>();
}
struct Five {}
impl ConstSize for Five {
const SIZE: usize = 5;
}
fn create_array(){
let arr = [64; Five::SIZE];
println!("array.len: {:?}", arr.len());
}