Head First. Изучаем Swift [Джон Мэннинг] (pdf) читать постранично, страница - 3

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Функции могут быть автономными, а могут
определяться как часть класса, структуры или перечисления, где они
обычно называются методами. При помощи функций можно разбить сложные задачи на меньшие части, более удобные и легкие в тестировании.
Функции занимают центральное место в формировании структуры программ в Swift.

Функции Swift как средство повторного
использования кода

123

Встроенные функции

124

Что можно узнать по встроенным функциям?

125

Когда могут пригодиться функции

128

Написание тела функции

129

Использование функций

130

Функции работают со значениями

132

С возвращением (из функций)

134

Переменное количество параметров

136

Что можно передать функции?

139

У каждой функции есть тип

140

Типы функций как типы параметров

144

Несколько возвращаемых типов

146

Функции не обязаны существовать автономно

148

Switch с перечислениями

151

11

содержание

5

Замыкания
Необычные гибкие функции
Функции полезны, но иногда нужно больше гибкости. Swift позволяет
использовать функцию как тип — так же, как вы используете целое число
или строку. Это означает, что вы можете создать функцию и присвоить
ее переменной. После того как функция будет присвоена переменной, ее
можно вызывать через эту переменную или передавать другим функциям
в параметре. Когда вы создаете и используете функцию подобным образом,
это называется замыканием. Замыкания очень полезны, потому что они

Мы закроем вопрос
с замыканиями.

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

12

Знакомьтесь: простое замыкание

156

Замыкания с параметрами

158

Вычисление сводного значения

166

Свертки с использованием замыканий

167

Сохранение значений из внешней области видимости

170

Выходящие замыкания: нетривиальный пример

172

Автозамыкания обеспечивают гибкость

175

Сокращенные имена аргументов

178

содержание

6

Структуры, свойства и методы
Типы, определяемые пользователем, и не только
При работе с данными часто требуется определять собственные виды
данных. Структуры, также нередко обозначаемые ключевым словом struct,
позволяют создавать типы данных, определяемые пользователем (подобно
тому, как String и Int являются типами данных), посредством объединения других
типов. Использование структур для представления данных, с которыми работает ваш код Swift, позволяет отступить на шаг и подумать над взаимодействием
данных, передаваемых в вашем коде. Структуры могут содержать переменные и константы (внутри структур они называются свойствами) и функции
(называемые методами). Добавим немного порядка в ваш мир и займемся
углубленным изучением структур.

Сделаем пиццу во всей красе...

183

Инициализатор ведет себя точно так же, как функция

189

Статические свойства повышают гибкость структур

192

Функции в структурах

196

Методы

196

Изменение свойств с использованием методов

197

Вычисляемые свойства

199

Get- и set-методы для вычисляемых свойств

203

Реализация set-метода

204

Строки Swift в действительности являются структурами

206

Для чего нужны отложенные свойства

207

Использование отложенных свойств

208

13

содержание

7

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

Структура с другим именем (и это имя — класс)

14

212

Наследование и классы

214

Переопределение методов

218

Финальные классы

222

Автоматический подсчет ссылок

226

Изменяемость

227

содержание

8

Протоколы и расширения
Протокольные церемонии
Вы все знаете о классах и наследовании, но у Swift еще есть немало
средств структурирования программ. Знакомьтесь: протоколы и расширения. Протоколы в Swift позволяют определить шаблон с перечнем
методов и свойств, необходимых для некоторой цели или некоторого
блока функциональности. Протокол включается классом, структурой или
перечислением, в которых содержится его фактическая реализация. Типы,
которые предоставляют необходимую функциональность,