ルースベクトルを作成してループを使って構造体インスタンスを埋め込むことができますが、次のような高次関数の1つを使って同じ結果を得ることができるかどうかは疑問でしたmap
などである。ここで 高次関数を使ってオブジェクトでルストベクトルを塗りようとする
#[derive(Debug)]
pub struct sim {
id: i32,
}
impl Default for sim {
fn default() -> sim {
sim { id: 4 }
}
}
fn main() {
let mut v2 = Vec::<sim>::new();
for i in 0..7 {
v2.push(sim::default())
}
println!("{:?}", v2);
}
が、私は以下のコードを試してみましたが、それはうまくいきませんでした。
let mut v3 = Vec::<sim>::new();
(0..7).map(|| v3.push(sim::default()));
慣用的な錆スタイルは、タイプに 'PascalCase'を使用することです。 'sim'は正しくない、' Sim'はそうです。あなたは 'v2'に型ヒントを与える必要もありません - あなたが' sim'を押すという事実は型を推論するのに十分です。 – Shepmaster
ハハ@シェパママスターに感謝します。私はここで一日のうちに最小限の例を得るだろう;) – krishnab