読者です 読者をやめる 読者になる 読者になる

RustでArrayにcollectしたい

Rustで以下のコードは違法

(0 .. 9).map(|i| i*i).collect::<[i32; 10]>::()

これは配列がFromIteratorを実装していないため.

こういう時はArrayVecを使う.

取り敢えずCargo.tomldependencies

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()

とすればいい