Сабскрипты в Swift | OTUS

Сабскрипты в Swift

Классы, структуры и перечисления в языке программирования Swift могут определяться сабскриптами -- subscripts. На практике их применяют для обеспечения доступа к элементам коллекции либо последовательности. В ряде других языков похожая концепция тоже существует -- это индексаторы. Что касается сабскриптов в Swift, то они дают возможность обращаться с объектом класса либо структурой как с отдельной коллекцией.

Чтобы определить сабскрипт в коде, используют соответствующее ключевое слово -- subscript:

1-1801-664eab.png

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

Сам по себе сабскрипт способен состоять из 2-х блоков: - get; - set.

Get осуществляет возврат элемента, а set устанавливает новое значение -- оно передается через newValue-параметр.

Пример

Создадим класс библиотеки. Соответственно, библиотека -- это некий набор книг. Таки образом, можно представить этот класс в качестве коллекции книг и применять сабскрипты, чтобы получать книги по индексу:

2-1801-6c7ea2.png

В данном случае сабскрипт выполняет работу с типом Book. При этом в блоке get осуществляется получение объекта Book из соответствующего массива books по индексу. Тогда как в блоке set мы устанавливаем объект Book в массиве books.

В результате, для получения необходимой книги можно обращаться к библиотеке, как к массиву, используя индекс:

3-1801-e58915.png

Разновидности subscripts

Осталось сказать, что существуют 2 типа сабскриптов: - поддерживающие чтение/запись (имеющие блоки get/set, как в вышеописанном примере); - предназначенные ТОЛЬКО для чтения (имеющие лишь блок get).

Чтобы применить subscript исключительно для чтения, давайте изменим класс библиотеки:

4-1801-ac8fb0.png

По материалам https://metanit.com/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто
Запланируй обучение с выгодой!
Получи скидку 10% на все курсы ноября и декабря до 17.11 →