Rust 是否可以使用泛型的type参数控制数组的大小?

Rust 是否可以使用泛型的type参数控制数组的大小?,rust,Rust,以下内容仅用作示例,不是有效的防锈代码 struct Vec<T: Sized, Count> { a: [T; Count] } 结构向量{ a:[T;计数] } >类似的东西在C++模板中是可能的,但我没有在锈中看到它。< / P >锈蚀1.51 使用常量泛型: 结构向量{ a:[T;计数], } 以前的版本 引入对此的支持,并在中跟踪进度 如果你看一下Rust的设计,你会注意到它首先是从解决最难的问题(内存安全、数据竞争自由)开始的,但在其他方面,它有很多“不完

以下内容仅用作示例,不是有效的防锈代码

struct Vec<T: Sized, Count> {
    a: [T; Count]
}
结构向量{ a:[T;计数] } <> >类似的东西在C++模板中是可能的,但我没有在锈中看到它。< / P >锈蚀1.51 使用常量泛型:

结构向量{ a:[T;计数], } 以前的版本 引入对此的支持,并在中跟踪进度

如果你看一下Rust的设计,你会注意到它首先是从解决最难的问题(内存安全、数据竞争自由)开始的,但在其他方面,它有很多“不完整”的地方(与可以实现的相比)

特别是,通用结构和功能开始时有点有限:

  • 缺乏更高级类型(HKT)
  • 缺少非类型参数=>数组是一种特殊情况,为数组实现特性是一种特殊情况,解决的办法是为几个不同的维度实现它
  • 缺少可变参数=>元组是一种特殊情况,为所有元组实现特征同样困难

目前,并不是所有这些都得到了实施,不是因为它们不受欢迎,而是因为时间不够。Rust 1.0的理念不是发布一个不会进化的最终产品,而是从一个稳定的基础开始;一些或可能全部都会出现。

在等待Rust获得一流的支持时,有些板条箱提供了特定级别的此功能,例如:


我不这么认为,但@Byron:作为信息,非类型参数将随附,但仍处于RFC阶段。到2020年,我们似乎仍然无法使用它?谢谢@ch271828n:确实还没有。有一项稳定一个国家的建议,这将允许它,并希望它将在年底左右得到实施。
struct Vec<T: Sized, const COUNT: usize> {
    a: [T; COUNT],
}