ベクタの作成
CoddyのRustジャーニー「Logic & Flow」セクションの一部 — レッスン 8/66。
ベクタが何であるかを理解したところで、それらを作成する方法を学びましょう。Rustはベクタを作成するための2つの主要な方法を提供しており、それぞれが異なる状況に適しています。
最初のメソッドは、Vec::new() を使用して、後で要素を追加できる空のベクタを作成します:
let mut numbers = Vec::new();後でこの空のベクタに要素を追加したくなる可能性が高いため、mut を使用していることに注意してください。Rustは空のベクタの型を常に判断できるわけではないため、明示的に指定する必要があるかもしれません:
let mut numbers: Vec<i32> = Vec::new();2番目の方法は、vec![]マクロを使用して、初期値を持つベクタを作成します:
let numbers = vec![1, 2, 3, 4, 5];vec![] マクロは、開始時の値がわかっている場合により便利です。Rustは提供された値から自動的に型を決定できるため、型注釈は不要です。このベクタは5つの整数を含んでおり、すぐに使用できます。
vec![] マクロは、同じ値で指定された回数分埋められたベクタを作成するための反復構文もサポートしています。
let zeros = vec![0; 5]; // [0, 0, 0, 0, 0]構文は vec![value; n] で、ここで value は繰り返す要素、n は繰り返す回数です。これは、既知のサイズでデフォルト値があらかじめ入力されたベクタが必要な場合に便利です。
どちらのアプローチも同じ型のベクトルを作成します。どちらを選択するかは、初期値があるか、それともベクトルを徐々に構築する予定かによって決まります。
チャレンジ
簡単ベクタに含める要素の数を示す数値が入力として与えられます。入力を読み取り、整数に変換し、その数だけの要素を持つベクタを作成してください。各要素の値は 10 とします。
要件:
- 入力を読み取り、整数に変換すること
vec![]マクロを使用してベクタを作成すること- ベクタには指定された数の要素が含まれていること
- 各要素の値は
10であること - 各要素を個別の行に出力すること
入力: 要素の数を示す単一の整数
出力: ベクタの各要素を個別の行に出力してください
チートシート
Rustは、ベクタを作成するための主に2つの方法を提供しています:
空のベクタを作成するために Vec::new() を使用します:
let mut numbers = Vec::new();後で要素を追加する予定がある場合は mut を使用してください。型を明示的に指定する必要がある場合があります:
let mut numbers: Vec<i32> = Vec::new();初期値を持つベクタを作成するために vec![] マクロを使用します:
let numbers = vec![1, 2, 3, 4, 5];vec![] マクロは、提供された値から型を自動的に決定します。
繰り返される値を持つベクタを作成するために vec![] マクロを使用します:
let numbers = vec![0; 5]; // [0, 0, 0, 0, 0]構文 vec![value; n] は、value を n 回繰り返した内容を含むベクタを作成します。
自分で試してみよう
use std::io;
fn main() {
// 入力を読み込む
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let n: usize = input.trim().parse().expect("Invalid input");
// TODO: 以下にコードを記述してください
// 各要素の値が10であるn個の要素を持つベクタを作成する
// 各要素を個別の行に出力する
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。