Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СЕССИЯ ОТВЕТЫ / iOS сессия ответы.docx
Скачиваний:
21
Добавлен:
25.12.2020
Размер:
14.45 Mб
Скачать
  1. Наборы: объявление набора, создание пустого набора, доступ к набору и модификация набора.

Набор (Set) — это неупорядоченная коллекция уникальных элементов. В отличие от массивов, у элементов набора нет четкого порядка следования, важен лишь факт наличия некоторого значения в наборе. Определенное значение элемента может существовать в нем лишь единожды, то есть каждое значение в пределах одного набора должно быть уникальным. Возможно, в русскоязычной документации по языку Swift вы встречали другое название наборов — множества. Варианты создания набора - создается с помощью литерала набора. В плане синтаксиса он идентичен литералу массива, но при этом не должен содержать дублирующихся значений.

Литерал набора возвращает набор, состоящий из N элементов, значения которых имеют один и тот же тип данных. Литерал указывается в квадратных скобках, а значения отдельных элементов в нем разделяются запятыми. Литерал может содержать произвольное количество уникальных элементов одного типа. Пустой набор, то есть набор, значение которого не имеет элементов (по аналогии с пустым массивом), создается с помощью пустого литерала набора [] либо вызова функции Set() без входных параметров, где T определяет тип данных элементов массива. Вы также можете передать данный литерал с целью уничтожения всех элементов изменяемого набора (то есть в качестве хранилища используется переменная, а не константа).

Базовые свойства и методы наборов — это неупорядоченная коллекция, элементы которой не имеют индексов. Для взаимодействия с его элементами используются специальные методы. Так, для создания нового элемента в наборе применяется метод insert(_:), которому передается создаваемое значение. Обратите внимание, что оно должно соответствовать типу набора.

Операции с наборами подобны математическим множествам. Два или более набора могут содержать пересекающиеся и непересекающиеся между собой значения. Swift позволяет получать эти группы значений.

18.Базовые свойства и методы наборов. Эквивалентность наборов.

Базовые свойства и методы наборов — это неупорядоченная коллекция, элементы которой не имеют индексов. Для взаимодействия с его элементами используются специальные методы. Так, для создания нового элемента в наборе применяется метод insert(_:), которому передается создаваемое значение. Обратите внимание, что оно должно соответствовать типу набора.

В результате выполнения метода insert(_:) возвращается кортеж, первый элемент которого содержит значение типа Bool, характеризующее успешность проведенной операции. Если возвращен true — элемент успешно добавлен, если false — он уже существует в наборе. Эквивалентность наборов проверяется с помощью оператора эквивалентности (==), как показано в листинге 10.11.

19.Словари: объявление словаря, инициализация словаря на основе последовательности, взаимодействие  с элементами словаря

Словарь — это неупорядоченная коллекция элементов, для доступа к значениям которых используются специальные индексы, называемые ключами. Каждый элемент словаря состоит из уникального ключа, указывающего на данный элемент, и значения. В качестве ключа выступает не автоматически генерируемый целочисленный индекс (как в массивах), а уникальное для словаря значение произвольного типа, определяемое программистом. Чаще всего в качестве ключей используются строковые или целочисленные значения. Все ключи словаря должны иметь единый тип данных. То же относится и к значениям.

Листинг 11.1

var dictionary = ["one":"один", "two": "два", "three":"три"]

dictionary //["three": "один", "one": "два", "two": "три"]

Словарь dictionary содержит три элемента. Здесь "one", "two" и "three" — это ключи, которые позволяют получить доступ к значениям элементов словаря. Типом данных ключей, как и типом данных значений элементов словаря, является String.

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

В результате исполнения данного кода словарь countryDict получает новое значение для элемента с ключом RUS. Изменение значения элемента словаря также может быть произведено с помощью метода updateValue(_:forKey:). В случае, если изменяемый элемент отсутствует, будет возвращен nil (с ним мы уже встречались в предыдущей главе). В случае успешного изменения будет возвращено старое значение элемента.

20. Явное указание типа данных словаря. Создание пустого словаря. Базовые свойства и методы словарей.

Пустой словарь не содержит элементов (как и пустые набор и массив). Для того чтобы создать пустой словарь, необходимо использовать литерал без элементов. Для этого предназначена конструкция [:] или функция Dictionary() без входных аргументов.

Листинг 11.9

var emptyDictionary: [String:Int] = [:]

var anotherEmptyDictionary = Dictionary()

С помощью конструкции [:] также можно уничтожить все элементы словаря, если проинициализировать ее словарю в качестве значения.

Обратите внимание, что в качестве значения каждого элемента словаря в данном примере используется массив с типом [String]. В результате тип самого словаря birthYears будет [Int:[String]].

Базовые свойства и методы словарей

Свойство count возвращает количество элементов в словаре

Листинг 11.11

var someDictionary = ["One":1, "Two":2, "Three":3]

// количество элементов в словаре

someDictionary.count // 3

Если свойство count равно нулю, то свойство isEmpty возвращает true .

Листинг 11.12

var emptyDict: [String:Int] = [:]

emptyDict.count //0

emptyDict.isEmpty //true

При необходимости вы можете получить все ключи или все значения словаря с помощью свойств keys и values. При обращении к свойствам keys или values Swift возвращает не массив или набор, а значение специального типа данных Dictionary.Keys и Dictionary.Values. В данном случае указанные типы служат для доступа к ключам или значениям исходного словаря. При этом они являются полноценными коллекциями (соответствуют требованиям протокола Collection), а значит, могут быть преобразованы в массив или набор.

21.Циклы. Оператор повторения for. Управление циклами

Оператор for предназначен для цикличного выполнения блока кода для каждого элемента некоторой последовательности (Sequence). Другими словами, для каждого элемента будет выполнен один и тот же блок кода. Данный оператор принимает на вход любую последовательность (включая коллекции). К примеру, с его помощью можно вывести все символы строки (String — это Collection) по одному на консоль, вызывая функцию print(_:) для каждого символа. И для реализации этой задачи потребуется всего несколько строк кода.

Цикл for-in выполняет код, расположенный в теле оператора, для каждого элемента в переданной последовательности. При этом перебор элементов происходит последовательно и по порядку (от первого к последнему). Перед каждой итерацией происходит связывание значения очередного элемента последовательности с параметром, объявленным после ключевого слова for. После этого в коде тела оператора это значение доступно через имя связанного параметра. Данный (связанный) параметр является локальным для конструкции for-in и недоступен за ее пределами. После всех итераций (перебора всех элементов последовательности) цикл завершает свою работу, а связанный параметр уничтожается. В качестве входной последовательности может быть передана любая Sequence (в том числе Collection): массив (Array), словарь (Dictionary), множество (Set), диапазон (Range) и т. д.

22. Операторы повторенияwhile и repeatwhile. Циклwhile. Цикл repeat while. Управление циклами.

Далее будут рассмотрены конструкции языка, позволяющие циклично (многократно) выполнять блокикода и управлять данными повторениями .Другими словами ,их основная идея состоит в том, чтобы программамного кратно выполняла одни и те же выражения, но с различными входными данными.

Операторы while и repeatwhile позволяют выполнять блоккода до тех пор, пока проверяемое выражение возвращает true.

Соседние файлы в папке СЕССИЯ ОТВЕТЫ