Урок 11. Кортежи

14 Января 2023

Tuples

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

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

Давайте сперва посмотрим на его синтаксис:

(oneElement, towElement, …)

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

Создадим для примера два кортежа:

				
					let hotel = (4, "family")
let pet = ("Cat", 6, true)
				
			

Мы с вами создали два кортежа, первый отвечает за некоторые данные по отелю, а второй по питомцу. 

Каждый из этих кортежей группирует значения разных типов. Давайте посмотрим на типы данных наших свойств:


Так выглядит тип кортежа.

Доступ к элементам кортежа

Давайте запустим компилятор и посмотрим на окно справа:


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

Ну и если мы видим элемент справа, то это значение мы можем присвоить какому-либо свойству:

				
					let rating = hotel.0
let type = hotel.1
				
			

Свойство rating будет типа Int, а type типа String 

Эти свойство можно теперь использовать в логике. 

Элементы кортежа можно именовать:

				
					let hotel = (rating: 4, type: "family")
let pet = (type: "Cat", age: 6, isfluffy: true)
				
			

Таким образом мы можем обращаться к элементам и по их индексам и по их параметрам:

Вы можете именовать только некоторые элементы кортежа, не обязательно задавать имена всем. Но если уж начали именовать, то лучше идти до конца.

На самом деле мы с вами уже сталкивались с кортежем. 

Давайте создадим числовое множество и добавим в него новый элемент:

метод insert нам возвращает кортеж, и элементы кортежа мы можем присвоить новым свойствам:

				
					let (inserted, memberAfterInsert) 
				
			

Мы объявили две константы и поместила их в скобки, с наружи написали let, и теперь нам нужно присвоить значение для каждой из этих констант:

				
					var numbers: Set = [5, 4, 9, 33, 58]
let (inserted, memberAfterInsert) = numbers.insert(8)
				
			

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

Теперь свойство inserted будет содержать в себе логическое значение, а memberAfterInsert то значение, которое мы добавили в множество. 

Давайте посмотрим на эти значения:

Эти свойства можно отдельно друг от друга использовать в логике. 

Если из кортежа вы хотите достать только одно свойство, то ненужное вам замените на нижнее подчеркивание: