以下内容仅用作示例,并非有效的 Rust 代码。
struct Vec<T: Sized, Count> {
a: [T; Count]
}
类似的事情在 C++ 模板中是可能的,但我还没有在 Rust 中看到它。
铁锈1.51
Use 常量泛型:
struct Vec<T: Sized, const COUNT: usize> {
a: [T; COUNT],
}
之前的版本
RFC 2000 — const 泛型 https://rust-lang.github.io/rfcs/2000-const-generics.html引入对此的支持并跟踪进度问题#44580 https://github.com/rust-lang/rust/issues/44580.
如果你看一下 Rust 的设计,你会发现它首先解决了最难的问题(内存安全、无数据竞争),但还有很多“不完整”的领域(与可能的问题相比)达到)。
特别是,通用结构和功能一开始有些有限:
- 缺乏高等种类(HKT)
- 缺少非类型参数 => 数组是特殊情况,实现数组的特征是一个已知问题 https://github.com/rust-lang/rust/issues/7622,解决方法是针对几个不同的维度实现它
- 缺少可变参数 => 元组是特殊情况,并且为所有元组实现特征同样困难
目前,并非所有这些都得到实施,不是因为它们不受欢迎,而是因为时间不够。 Rust 1.0 的想法不是发布一个不会进化的最终产品,而是一个稳定的起点;一些或也许全部都会来。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)