RustでArrayにcollectしたい
Rustで以下のコードは違法
(0 .. 9).map(|i| i*i).collect::<[i32; 10]>::()
これは配列がFromIterator
を実装していないため.
こういう時はArrayVec
を使う.
取り敢えずCargo.toml
のdependencies
に
arrayvec = "0.3.20"
を書き加えて
extern crate arrayvec; use arrayvec::ArrayVec; let result: ArrayVec<[_, 10]> = (0..9).map(|i| i*i).collect(); result.into_inner().unwrap()
とすればいい