Добавление элементов с помощью push
Часть раздела Logic & Flow путешествия по Rust на Coddy — урок 9 из 66.
Как только у вас появится вектор, вам часто захочется добавлять в него новые элементы. Rust предоставляет метод .push() для добавления элементов в конец вектора. Это одна из самых распространенных операций, которые вы будете выполнять с векторами.
Вот как использовать .push():
let mut numbers = Vec::new();
numbers.push(10);
numbers.push(20);
numbers.push(30);Обратите внимание на ключевое слово mut — это крайне важно! Поскольку добавление элементов изменяет содержимое вектора, вектор должен быть объявлен как изменяемый. Без mut Rust не позволит вам изменять вектор.
Метод .push() всегда добавляет новый элемент в конец вектора. Каждый вызов .push() увеличивает длину вектора на единицу:
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]Задание
ЛегкоВы получите три числа на вход, каждое на отдельной строке. Прочитайте эти числа, преобразуйте их в целые числа и добавьте их в вектор с помощью метода .push(). После добавления всех трех чисел выведите каждый элемент вектора на отдельной строке.
Требования:
- Создайте пустой изменяемый вектор
- Прочитайте три числа из входных данных и преобразуйте каждое в целое число
- Используйте
.push(), чтобы добавить каждое число в вектор - Выведите каждый элемент вектора на отдельной строке
Ввод: Три целых числа, каждое на отдельной строке
Вывод: Выведите каждый элемент вектора на отдельной строке
Шпаргалка
Чтобы добавить элементы в вектор, используйте метод .push(). Вектор должен быть объявлен как изменяемый с помощью ключевого слова mut:
let mut numbers = Vec::new();
numbers.push(10);
numbers.push(20);
numbers.push(30);Метод .push() добавляет элементы в конец вектора и увеличивает его длину на единицу при каждом вызове.
Вы также можете добавлять элементы в вектор, который уже содержит значения:
let mut scores = vec![85, 92];
scores.push(78); // теперь scores равен [85, 92, 78]Попробуйте сами
use std::io;
fn main() {
// Считать три числа из ввода
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: Напишите свой код ниже
// Создайте изменяемый вектор и добавьте в него числа
// Выведите каждый элемент вектора на отдельной строке
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Logic & Flow
1Продвинутое управление потоком выполнения
Выражение 'match'Сопоставление нескольких значенийСопоставление диапазоновВыражение 'if let'Циклы как выраженияИтоги — Простой парсер команд4Группировка данных с помощью структур
Что такое структура?Обзор структурДоступ к полям структурыИзменяемые структурыСтруктуры как параметры функцийКортежные структурыИтоги: создание структуры Book7Обработка ошибок с помощью 'Result'
Что такое 'Result'?Использование 'match' с 'Result'is_ok() и is_err()Сокращения: unwrap и expectОператор вопросительного знака '?'Парсинг строк в числаИтоги: функция безопасного деления10Замыкания и анонимные функции
Что такое замыкание?Определение простого замыканияЗамыкания с параметрамиЗахват окруженияИтоги: Простое замыкание-сумматор2Введение в векторы
Что такое вектор?Создание вектораДобавление элементов с помощью pushДоступ к элементам вектораИтерация по векторуИзменяемая итерацияУдаление элементовИтоги — Простой счетчик очков5Пары «ключ-значение» в Hash Map
Что такое Hash Map?Создание Hash MapВставка пар «ключ-значение»Доступ к значениямИтерация по Hash MapОбновление значенияУдаление парыИтоги — Счетчик слов8Проект: Простой инвентарь товаров
Настройка проектаДобавление товараПроверка наличияПродажа товараСобираем всё воедино3Список дел в командной строке
Настройка проектаДобавление задачиПросмотр всех задачУдаление задачиИтоговый код6Обработка отсутствия значения с 'Option'
Что такое 'Option'?Использование 'match' с 'Option'is_some() и is_none()Распаковка 'Option'Метод expectЗначение по умолчанию: unwrap_orИтоги: поиск элемента