Menu
Coddy logo textTech

Методы массивов

Часть раздела 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
challenge icon

Задание

Легко

Создайте функцию с именем analyze_array, которая принимает массив строк размером 5 в качестве аргумента. Метод должен выполнять следующие операции:

  1. Проверьте, является ли массив пустым, используя метод is_empty(), и выведите результат.
  2. Проверьте, содержит ли массив строку “5”, используя метод contains(), и выведите результат. Не забудьте использовать String, а не str: “5”.to_string()
  3. Разверните массив и выведите его

Вывод должен соответствовать следующему формату:

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);
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals