Эта книга для многих компаний стала стандартом знаний о языке Swift.
Теперь сводка по главам, что там было интересного для меня.
Enums
Что это? Это структуры данных, которые включают в себя определенные состояния. Какие именно - решать автору конкретного enum. Самый распространенный enum, который используется в Swift - опционал. Выглядит он так:enum Optional {SomeType} {
case Some(let var)
case none
}
Мы делаем переменные опциональными, когда не знаем, будет ли там храниться какое-то значение на протяжении всей жизни переменной.
Важно понимать, что экземпляр любого enum может содержать только один вариант из всех уже объявленных вариантов. Для enum Oprional это значит, что либо one, либо Some. Никогда вместе, никогда не бывает не выбран ни один вариант.
Что в них особенного?
Они очень похожи на структуры (Struct), но они не могут хранить свойства с данными. А еще количество вариантов, которые могут они принимать объявляется только в самом начале и не может быть изменено где-то на стороне с помощью extension.
Ответь себе на вопрос, почему хранить не могут сам :)
Приколы:
If case .some = someVar { }
Зачем они нужны? Чтобы контролировать все возможные состояния. Чаще всего их пишут для контроля ответов с бэка и вариантов случившихся ошибок.
Enum - это структура данных с ссылочной семантикой (value type. что это и как - потом)
Strings
Самый-самый-самый важный прикол со стрингами - это то, что с появлением эмодзи если собирать какие-то символы вместе, то можно получить новый символ (эмодзи), а значит сумма длин двух переменных не равно длине полученной переменной.Что там с кодировками?
Есть UTF-8, UTF-16, Unicode и другие.
Из чего состоит символ эмодзи? Он состоит из скалярных символов - это что-то типа «u{109}». Каждый скаляр соответствует какому-то символу текста. Каждый скаляр состоит из чего-то еще. Один символ текста может быть собран из разного набора скаляров. Символ текста может состоять из нескольких скаляров - поэтому сумма двух скаляров может оказать новым элементом.
Collection
TBDВообще, я начала переводить книгу на русской - но сделала только для первый двух глав. Для остальных нужна мотивация: либо вместе с кем-то делать, либо донаты. Если хотите с чем-то из этого помочь - пишите alsu.labs@gmail.com