Кортежи
Часть раздела Основы путешествия по Swift на Coddy — урок 68 из 86.
В то время как массивы хранят несколько значений одного типа, иногда вам нужно сгруппировать несколько связанных значений разных типов вместе. Именно здесь на помощь приходят кортежи.
Кортеж — это фиксированный набор значений, которые могут иметь разные типы. Вы создаете его, помещая значения в круглые скобки через запятую:
let person = ("Alice", 25, true)
print(person) // ("Alice", 25, true)Для доступа к отдельным значениям используйте их индекс через точку:
let coordinates = (10.5, 20.3)
print(coordinates.0) // 10.5
print(coordinates.1) // 20.3Вы также можете давать элементам имена для лучшей читаемости:
let product = (name: "Laptop", price: 999.99)
print(product.name) // Laptop
print(product.price) // 999.99Ещё одна полезная возможность — декомпозиция кортежа на отдельные переменные:
let point = (3, 7)
let (x, y) = point
print(x) // 3
print(y) // 7Кортежи идеально подходят для возврата нескольких значений из функции или группировки небольших объемов связанных данных без создания полноценной структуры.
Задание
ЛегкоВы получите три строки входных данных:
- Имя (String)
- Возраст (Int)
- Балл (Double)
Создайте кортеж с именем student с именованными элементами: name, age и score.
Затем разложите кортеж на три отдельные переменные: studentName, studentAge и studentScore.
Выведите следующие три строки:
- Имя студента, полученное через именованный элемент
- Возраст студента, полученный через индекс (точечная нотация с числом)
- Переменную с разложенным значением балла
Пример: Если входные данные — Emma, 21 и 95.5, ваш вывод должен быть:
Emma
21
95.5Шпаргалка
Кортеж (tuple) — это фиксированная коллекция значений, которые могут иметь разные типы. Создайте его, используя круглые скобки со значениями, разделенными запятыми:
let person = ("Alice", 25, true)Доступ к элементам кортежа осуществляется по индексу с использованием точечной нотации:
let coordinates = (10.5, 20.3)
print(coordinates.0) // 10.5
print(coordinates.1) // 20.3Присваивайте имена элементам кортежа для лучшей читаемости:
let product = (name: "Laptop", price: 999.99)
print(product.name) // Laptop
print(product.price) // 999.99Разложите кортеж на отдельные переменные:
let point = (3, 7)
let (x, y) = point
print(x) // 3
print(y) // 7Попробуйте сами
// Чтение входных данных
let name = readLine()!
let age = Int(readLine()!)!
let score = Double(readLine()!)!
// TODO: Напишите свой код ниже
// 1. Создайте кортеж с именем 'student' с именованными элементами: name, age и score
// 2. Разложите кортеж на три отдельные переменные: studentName, studentAge и studentScore
// 3. Выведите имя студента, используя именованный элемент (student.name)
// 4. Выведите возраст студента, используя индексную нотацию (student.1)
// 5. Выведите разложенную переменную оценки (studentScore)В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: Простая математикаОператоры сравнения7Основы ввода-вывода
Функция PrintИнтерполяция строкВвод через ReadLineПреобразование типовПовторение — до 120Повторение — True или False10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияМетки аргументовПовторение: функция SigmaПовторение: функция валидацииЗначения по умолчанию13Итерирование по последовательностям
Итерирование по элементамМетод enumerateИтерирование по строкам, ч. 1Итерирование по строкам, ч. 22Переменные
Let против VarАннотации типовЧислаСтрокиBooleanСоглашения об именованииИтоги — Инициализация переменных5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение: простая логикаЛогические операторы. Часть 3Тернарный оператор8Калькулятор разделения счета
Приветственное сообщениеПолучение ввода14Массивы: Продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опционалы
Что такое опционалыРазвертывание с помощью if letGuard letОператор объединения с nilИтоги — безопасное развертывание6Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторОператор SwitchSwitch с диапазонами9Циклы
Цикл For-InЦикл WhileЦикл Repeat-WhileBreakContinueПовторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический ввод