配列の変更
CoddyのRustジャーニー「基礎」セクションの一部。レッスン 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, cherrybananaはorangeに変更されました。
チャレンジ
簡単3つの入力を受け取るプログラムを作成してください:
- 1つ目の入力は、カンマで区切られた値の文字列(例:
1,2,3,4,5)で、長さは5です。 - 2つ目の入力はインデックスです
- 3つ目の入力は新しい要素です
スターターコードでは、カンマ区切りの文字列がすでに arr という可変配列に変換されています。変換コードを書く必要はなく、そのまま直接操作できます。
プログラムは、2つ目の入力に格納されたインデックスの要素を、3つ目の入力の値に変更して、変更後の配列を出力します。
自分で試してみよう
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]);
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rustオンラインコンパイラ