Menu
Coddy logo textTech

pushによる要素の追加

CoddyのRustジャーニー「Logic & Flow」セクションの一部 — レッスン 9/66。

ベクタを作成したら、新しい要素を追加したくなることがよくあります。Rustは、ベクタの末尾に要素を追加するための .push() メソッドを提供しています。これは、ベクタに対して行う最も一般的な操作の一つです。

.push() の使い方は次のとおりです:

let mut numbers = Vec::new();
numbers.push(10);
numbers.push(20);
numbers.push(30);

mutキーワードに注目してください。これは非常に重要です!要素を追加するとベクタの内容が変更されるため、ベクタは可変(mutable)として宣言する必要があります。mutがないと、Rustはそのベクタを変更することを許可しません。

.push() メソッドは、常に新しい要素をベクタの末尾に追加します。.push() を呼び出すたびに、ベクタの長さが1ずつ増加します:

let mut fruits = Vec::new();
fruits.push("apple");
fruits.push("banana");
// fruits は現在 ["apple", "banana"] を含んでいます

すでに要素を持っているベクタから開始し、そこに要素を追加し続けることもできます:

let mut scores = vec![85, 92];
scores.push(78); // scoresは現在 [85, 92, 78] です
challenge icon

チャレンジ

簡単

入力として3つの数値を、それぞれ別の行で受け取ります。これらの数値を読み取り、整数に変換して、.push() メソッドを使用してベクタに追加してください。3つの数値をすべて追加した後、ベクタの各要素をそれぞれ別の行に出力してください。

要件:

  • 空の可変(mutable)ベクタを作成する
  • 入力から3つの数値を読み取り、それぞれを整数に変換する
  • .push() を使用して各数値をベクタに追加する
  • ベクタの各要素をそれぞれ別の行に出力する

入力: 3つの整数、それぞれ別の行

出力: ベクタの各要素をそれぞれ別の行に出力

チートシート

ベクタに要素を追加するには、.push() メソッドを使用します。ベクタは mut キーワードを使用して可変として宣言されている必要があります:

let mut numbers = Vec::new();
numbers.push(10);
numbers.push(20);
numbers.push(30);

.push() メソッドは、ベクタの末尾に要素を追加し、呼び出しごとにその長さを1増やします。

すでに値が含まれているベクタに要素を追加することもできます:

let mut scores = vec![85, 92];
scores.push(78); // scores は [85, 92, 78] になります

自分で試してみよう

use std::io;

fn main() {
    // 入力から3つの数値を読み込む
    let mut input1 = String::new();
    io::stdin().read_line(&mut input1).expect("Failed to read line");
    let num1: i32 = input1.trim().parse().expect("Invalid input");
    
    let mut input2 = String::new();
    io::stdin().read_line(&mut input2).expect("Failed to read line");
    let num2: i32 = input2.trim().parse().expect("Invalid input");
    
    let mut input3 = String::new();
    io::stdin().read_line(&mut input3).expect("Failed to read line");
    let num3: i32 = input3.trim().parse().expect("Invalid input");
    
    // TODO: 以下にコードを記述してください
    // 可変ベクタを作成し、数値をそこに追加する
    
    
    // ベクタの各要素を個別の行に出力する
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Logic & Flowのすべてのレッスン