gpt4 book ai didi

rust - 是否可以使用泛型的类型参数来控制数组的大小?

转载 作者:行者123 更新时间:2023-11-29 08:19:41 24 4
gpt4 key购买 nike

以下内容仅用作示例,并非有效的 Rust 代码。

struct Vec<T: Sized, Count> {
a: [T; Count]
}

类似的东西在 C++ 模板中是可能的,但我还没有在 Rust 中看到它。

最佳答案

使用rust 1.51

使用常量泛型:

struct Vec<T: Sized, const COUNT: usize> {
a: [T; COUNT],
}

以前的版本

RFC 2000 — const generics引入对此的支持,并在 issue #44580 中跟踪进度.

如果您查看 Rust 的设计,您会注意到它首先从解决最困难的问题(内存安全、无数据争用)开始,但在其他方面它还有很多“不完整”的地方(与可以实现什么)。

特别是,通用结构和函数开始时有些受限:

  • 缺乏高等类型 (HKT)
  • 缺少非类型参数 => 数组是特殊情况,为数组实现特征是 a known issue ,解决方法是针对几个不同的维度实现它
  • 缺少可变参数 => 元组是特殊情况,为所有元组实现一个特征同样困难

目前,并非所有这些都已实现,不是因为不需要它们,而是因为时间不够。 Rust 1.0 的想法不是发布一个不会进化的最终产品,而是一个稳定的基础;一些或可能全部会来。

关于rust - 是否可以使用泛型的类型参数来控制数组的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58786006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com