Изменение массивов
Часть раздела Fundamentals путешествия по Rust на Coddy — урок 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,2,3,4,5), длиной 5. - Второе входное значение — это индекс
- Третье входное значение — это новый элемент
Стартовый код уже преобразует строку с разделителями-запятыми в изменяемый массив с именем arr — вы можете работать с ним напрямую, не написав никакого кода для преобразования.
Программа выведет измененный массив, заменив элемент по индексу, полученному во втором входном значении, на значение из третьего входного значения.
Шпаргалка
Чтобы изменить элементы массива, массив должен быть объявлен с помощью 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]);
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияАрифметические сокращенияОператоры сравненияСравнение строк7Основы ввода-вывода
Вывод в консольЧтение ввода пользователяПовторение — До 120Повторение — True или False5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 38Приложение-калькулятор
Приветственное сообщениеПолучение чисел3Переменные. Часть 2
Объявление типаСоглашения об именованииВывод типовПовторение: инициализация переменныхПриведение типов9Циклы
Цикл For по последовательностиЦикл WhileОператор BreakОператор ContinueВложенные циклыМетки цикловБесконечный циклПовторение — Динамический ввод12Основы массивов
Объявление массивовМассив как параметрДоступ к элементамИзменение массивовПовторение — Красивый вывод массива