0Pricing
Learn Rust Coding · Урок

Составные типы

Кортежи и массивы

«Составные типы» — бесплатный урок Learn Rust Coding на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn Rust Coding, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn Rust Coding содержит 4 уроков всего.

What Are Compound Types?

Составные типы объединяют несколько значений в одно. В Rust есть два примитивных составных типа:

  • Кортежи (tuples) — группы фиксированного размера, которые могут содержать значения разных типов.
  • Массивы (arrays) — группы фиксированного размера, содержащие значения одного типа.
fn main() {
    let tup = (1, 2.0, 'c');
    let arr = [10, 20, 30];
    println!("{} {}", tup.0, arr[0]);
}

Creating Tuples

Кортеж объединяет значения внутри круглых скобок. Каждый элемент может быть своего типа.

Тип кортежа представляет собой комбинацию типов его элементов.

fn main() {
    let person: (&str, u32, f64) = ("Alice", 30, 5.6);
    println!("{} is {} years old", person.0, person.1);
}

Accessing Tuple Elements

Доступ к элементам кортежа осуществляется по индексу через точку, начиная с 0.

  • tup.0 — первый элемент.
  • tup.1 — второй.
fn main() {
    let point = (3, 7);
    let x = point.0;
    let y = point.1;
    println!("x={} y={}", x, y);
}

Destructuring Tuples

Вы можете разбить кортеж на отдельные переменные за один шаг. Это называется деструктуризацией.

fn main() {
    let coords = (1.5, 2.5, 3.5);
    let (a, b, c) = coords;
    println!("{} {} {}", a, b, c);
}

The Unit Type

Пустой кортеж () называется единичным типом. Он представляет собой «отсутствие значимого значения».

Функции, которые ничего не возвращают, на самом деле возвращают ().

fn main() {
    let nothing = ();
    println!("unit value is {:?}", nothing);
}

Creating Arrays

Массив содержит несколько значений одного типа с фиксированной длиной, записываемых в квадратных скобках.

Его тип записывается как [тип; длина].

fn main() {
    let days: [&str; 3] = ["Mon", "Tue", "Wed"];
    let numbers = [1, 2, 3, 4, 5];
    println!("{} {}", days[1], numbers[4]);
}

Array Indexing

Доступ к элементам массива осуществляется с помощью квадратных скобок и индекса, начинающегося с нуля.

Обращение к индексу вне границ массива вызывает панику во время выполнения — Rust проверяет границы для обеспечения безопасности.

fn main() {
    let colors = ["red", "green", "blue"];
    println!("first {}", colors[0]);
    println!("last {}", colors[2]);
}

Repeated Initial Values

Чтобы заполнить массив одним и тем же значением, используйте [значение; количество].

Это создает массив из количество элементов, каждый из которых равен значение.

fn main() {
    let zeros = [0; 5];
    println!("{:?}", zeros);
    println!("length is {}", zeros.len());
}

Array Length

Метод .len() возвращает количество элементов в массиве. Длина массива фиксируется во время компиляции.

Если вам нужен список с возможностью изменения размера, используйте Vec.

fn main() {
    let scores = [88, 92, 75, 100];
    println!("there are {} scores", scores.len());
}

Iterating an Array

Используйте цикл for для последовательного перебора всех элементов массива.

fn main() {
    let nums = [2, 4, 6, 8];
    let mut sum = 0;
    for n in nums {
        sum += n;
    }
    println!("sum = {}", sum);
}

Tuples vs Arrays

Когда что использовать:

  • Используйте кортеж (tuple) для фиксированного набора различных типов, например, координат и метки.
  • Используйте массив (array) для фиксированного набора одинаковых типов, например, списка баллов.
fn main() {
    let record = ("Bob", [90, 85, 95]);
    println!("{} first score {}", record.0, (record.1)[0]);
}

Quick Check

Выберите верное утверждение о составных типах данных в Rust.

Recap

Составные типы в Rust:

  • Кортежи (Tuples) — (a, b, c), содержат элементы разных типов, доступ осуществляется через .0, поддерживают деструктуризацию.
  • Массивы (Arrays) — [a, b, c], содержат элементы одного типа, фиксированной длины, доступ осуществляется через [index].
  • () — это пустой тип (unit type).
fn main() {
    let (name, scores) = ("Cara", [70, 80, 90]);
    let mut total = 0;
    for s in scores {
        total += s;
    }
    println!("{} total {}", name, total);
}

Часто задаваемые вопросы

Урок «Составные типы» бесплатный?

Да — полный текст урока «Составные типы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn Rust Coding, подпишись на CoddyKit PRO. Курс Learn Rust Coding содержит 4 уроков всего.

Чему я научусь в уроке «Составные типы»?

Кортежи и массивы Ты практикуешь Learn Rust Coding с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn Rust Coding?

Предыдущий опыт не требуется. Learn Rust Coding на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Составные типы»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn Rust Coding?

Да. Каждый урок Learn Rust Coding включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. let и изменяемость
  2. Скалярные типы
  3. Составные типы
  4. Затенение
← Назад к Learn Rust Coding