Перейти к основному содержанию

12. Кортежи (Tuple)

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

Пример хранения комплекса данных: имя, возраст, температура, состояние:

fn main() {
	let vasya: (String, u8, f32) = ("Вася".to_string(), 24, 36.6);
	let masha: (String, u8, f32, &str) = ("Маша".to_string(), 19, 37.1, "Болеет");
	println!("{:?}", vasya);
	println!("{:?}", masha);
}
Результат: ("Вася", 24, 36.6) ("Маша", 19, 37.1, "Болеет")

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

Общий синтаксис:

let tuple_name: (data_type1, data_type2, data_type3) = (value1, value2, value3);

Получение значений элементов кортежа

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

Например, для предыдущего кода это отработает так:

 println!("{}",vasya.0);
Результат: Вася

Распаковка кортежа

Мы можем создать несколько переменных и присвоить им значения кортежа.

fn main() {
	let vasya: (String, u8, f32) = ("Вася".to_string(), 24, 36.6);
	let (name, age, temperature) = vasya;
	println!("Имя {}, возраст {}, температура {}", name, age, temperature);
}
Результат: Имя Вася, возраст 24, температура 36.6

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

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

Всё бесплатно, мы просто хотим с вами познакомиться и понять насколько актуально то, что мы делаем.

© Клют И. А., 2022. Копирование контента возможно только с письменного разрешения автора.