Menu
Coddy logo textTech

配列の変更

CoddyのRustジャーニー「Fundamentals」セクションの一部 — レッスン 58/75。

配列の要素にアクセスするだけでなく、それらを変更することもできます。特定の要素を変更するには、まず配列を変更可能にするために mut が必要です。その後、インデックスを使用して新しい値を代入できます。

例を次に示します:

let mut my_array = ["apple", "banana", "cherry"];
my_array[1] = "orange";
println!("{}, {}, {}", my_array[0], my_array[1], my_array[2]);

出力:

apple, orange, cherry

bananaorange に変更されました。

challenge icon

チャレンジ

簡単

3つの入力を受け取るプログラムを作成してください:

  • 1つ目の入力は、カンマで区切られた長さ5の文字列(例:1,2,3,4,5)です。
  • 2つ目の入力はインデックスです。
  • 3つ目の入力は新しい要素です。

スターターコードは、カンマ区切りの文字列をarrという名前の可変配列にすでに変換しています。変換コードを書くことなく、直接それを使用できます。

プログラムは、2つ目の入力に格納されたインデックスにある要素を、3つ目の入力の値に変更して、修正された配列を出力します。

チートシート

配列の要素を変更するには、配列を mut を使って宣言する必要があります:

let mut my_array = ["apple", "banana", "cherry"];
my_array[1] = "orange";
println!("{}, {}, {}", my_array[0], my_array[1], my_array[2]);

これにより、インデックス 1 の要素が "banana" から "orange" に変更されます。

自分で試してみよう

use std::io;
use std::convert::TryInto;

fn main() {
    let mut input_str_arr = String::new();
    let mut input_index = String::new();
    let mut new_element = String::new();
    io::stdin().read_line(&mut input_str_arr).unwrap();
    io::stdin().read_line(&mut input_index).unwrap();
    io::stdin().read_line(&mut new_element).unwrap();

    let new_element = new_element.trim().to_string();
    let index: usize = input_index.trim().parse().unwrap();
    let mut arr: [String; 5] = input_str_arr.split(',').map(String::from).collect::<Vec<String>>().try_into().unwrap();
    
    // 以下にコードを記述してください
    // 課題を解決するために arr、index、new_element を使用してください    

    for i in 0..arr.len() {
        print!("{} ", arr[i]);
    }
}
quiz icon腕試し

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

Fundamentalsのすべてのレッスン