我需要在 Rust 中的关联类型中使用关联常量

问题描述 投票:0回答:1

我想创建一个特征来定义一个常量

LEN
和一个长度为
LEN
的数组作为特征函数的输出类型,但我不允许:

trait TransformIntoArray {
    const LEN: usize;
    fn transform_into_array(&self) -> [f64; Self::LEN];
    fn array_description(&self) -> [&'static str; Self::LEN];
}

这是行不通的。我想让两个函数的返回类型具有特征实现中定义的相同长度。但这在这里是不可能的。

还有其他我没有看到的解决方案吗?

rust types constants traits
1个回答
0
投票

您可以使用常量作为通用参数:

trait TransformIntoArray<const LEN: usize> {
    fn transform_into_array(&self) -> [f64; LEN];
    fn array_description(&self) -> [&'static str; LEN];
}
© www.soinside.com 2019 - 2024. All rights reserved.