Методы массивов
Часть раздела Fundamentals путешествия по Rust на Coddy — урок 61 из 75.
Массивы содержат множество методов (функциональных возможностей). Чтобы получить доступ к методу, напишите:
array.methodName(otherParameters)Вот список основных методов:
len()- возвращает количество элементов в массивеcontains(value)- проверяет, содержит ли массив определенное значение
is_empty()- проверяет, пуст ли массивreverse()- разворачивает массив
Например:
let numbers = [10, 20, 30, 40, 50];
let length = numbers.len();
println!("Length: {}", length);
numbers.reverse()
// [50, 40, 30, 20, 10]Пример использования метода is_empty():
let numbers: [i32; 0] = [];
let empty = numbers.is_empty();
println!("Is empty: {}", empty);Это выведет:
Is empty: trueПри использовании contains вам необходимо передать ссылку на искомое значение с помощью &. Например:
let numbers = [10, 20, 30, 40, 50];
let has_thirty = numbers.contains(&30);
println!("Contains 30: {}", has_thirty);
// Вывод: Contains 30: trueЗадание
ЛегкоСоздайте функцию с именем analyze_array, которая принимает массив строк размером 5 в качестве аргумента. Метод должен выполнять следующие операции:
- Проверьте, является ли массив пустым, используя метод
is_empty(), и выведите результат. - Проверьте, содержит ли массив строку
“5”, используя методcontains(), и выведите результат. Не забудьте использовать String, а не str:“5”.to_string() - Разверните массив и выведите его
Вывод должен соответствовать следующему формату:
Is empty: [true or false]
Contains 5: [true or false]
Reversed Elements:
[element1]
[element2]
...Шпаргалка
Массивы имеют встроенные методы, доступ к которым осуществляется через точечную нотацию:
array.methodName(otherParameters)Основные методы массивов:
len()- возвращает количество элементовcontains(value)- проверяет, содержит ли массив определенное значениеis_empty()- проверяет, пуст ли массивreverse()- инвертирует массив
Примеры:
let numbers = [10, 20, 30, 40, 50];
let length = numbers.len();
let has_thirty = numbers.contains(&30);
let empty = numbers.is_empty();
numbers.reverse(); // [50, 40, 30, 20, 10]Примечание: contains() требует ссылку на значение с использованием &.
Попробуйте сами
use std::io;
use std::convert::TryInto;
fn analyze_array(arr: &mut [String; 5]) {
// Напишите код здесь
// Вывод элементов построчно
for element in arr.iter() {
println!("{}", element);
}
}
fn main() {
let mut input_str_arr = String::new();
io::stdin().read_line(&mut input_str_arr).unwrap();
let mut arr: [String; 5] = input_str_arr.split(',').map(String::from).collect::<Vec<String>>().try_into().unwrap();
analyze_array(&mut arr);
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияАрифметические сокращенияОператоры сравненияСравнение строк7Основы ввода-вывода
Вывод в консольЧтение ввода пользователяПовторение — До 120Повторение — True или False13Массивы: продолжение
Изменяемые ссылочные массивыМетоды массивовПовторение — Массив произведенийПовторение — Перевернутый массивУлучшенный вывод5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 38Приложение-калькулятор
Приветственное сообщениеПолучение чисел3Переменные. Часть 2
Объявление типаСоглашения об именованииВывод типовПовторение: инициализация переменныхПриведение типов9Циклы
Цикл For по последовательностиЦикл WhileОператор BreakОператор ContinueВложенные циклыМетки цикловБесконечный циклПовторение — Динамический ввод