我想创建一个特征来定义一个常量
LEN
和一个长度为LEN
的数组作为特征函数的输出类型,但我不允许:
trait TransformIntoArray {
const LEN: usize;
fn transform_into_array(&self) -> [f64; Self::LEN];
fn array_description(&self) -> [&'static str; Self::LEN];
}
这是行不通的。我想让两个函数的返回类型具有特征实现中定义的相同长度。但这在这里是不可能的。
还有其他我没有看到的解决方案吗?
您可以使用常量作为通用参数:
trait TransformIntoArray<const LEN: usize> {
fn transform_into_array(&self) -> [f64; LEN];
fn array_description(&self) -> [&'static str; LEN];
}