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