Составные типы
Кортежи и массивы
«Составные типы» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- let и изменяемость
- Скалярные типы
- Составные типы
- Затенение