如何将数组转换为 Rust 中的数组?

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

我想将一种类型

[T; N]
的数组转换为另一种类型
[U; N]
的数组,其中
U: From<T>
。是否有任何语言语法或
std
功能允许在不进行堆分配的情况下实现此目的?如果没有,为什么不呢?语言设计是否存在某些问题导致实现起来变得困难?

arrays rust type-conversion
1个回答
0
投票

您可以非常轻松地在

std::array::from_fn
之上构建它:

fn convert_array<T: Into<U>, U, const N: usize>(array: [T; N]) -> [U; N] {
    let mut iter = array.into_iter();

    std::array::from_fn(|_| iter.next().unwrap().into())
}
© www.soinside.com 2019 - 2024. All rights reserved.