О чём не задумываются современные программисты Swift 5. Часть 1 | OTUS

О чём не задумываются современные программисты Swift 5. Часть 1

iOS_Deep_1.11-5020-ff90c9.png

Expressions, Statements и Declarations — три важных термина, о которых разработчики либо не знают, либо не понимают смысл их различий.

Если кратко: 1. Expression (выражение) – что-либо, что устанавливает/создаёт значение; 2. Statement (предписание) – строчка кода, которая делает что-либо. Ничего не возвращает; 3. Declarations (объявление) – указание идентификатора (признака объекта), используется, чтобы уведомить компилятор о существовании элемента.

Зачем это знать?

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

1-20219-4f5c1d.png

В Swift 5 эти концепты достаточно хорошо выражены.

Выражения (Expressions) в Swift делятся на 4 типа

Primary

Первичных выражений больше других в коде, написанном на языке Swift, они участвуют в остальных трёх видах выражений. Среди первичных выражений выделяют подтипы: — литеральные – объявление в коде значения-литерала числа, строки, массива или словаря; — Self-выражения – выражения с использованием указателя на текущий экземпляр типа self; — Superclass-выражения – аналогично предыдущему выражения с super-указателем; — замыкания (Closures) – конструкция объявления замыкания (их также называют лямбды и анонимные функции); — листы захвата (capture list) замыкания – конструкции для управления тем, как будут захвачены значения, окружающие замыкание; — неявное обращение к элементу типа (Implicit Member Expression), например, обращение к элементу перечисления или статистическому методу типа; — выражение в скобках; — кортеж (Tuple); — символ подстановки _, который используется для игнорирования значений в присваивании; — Key-Path и #keyPath выражения используются в KVO/KVC для совместимости с Objective-C Runtime; — #selector выражение – также для совместимости с Objective C, ведь это всё еще требуется для работы с UIKit.

Binary

Бинарные выражения похожи на бинарные операции в математике: два аргумента, а между ними оператор (infix operator). Самый явный пример – оператор присваивания =. Также примерами binary expression является тернарный оператор и операторы приведения типа (Type casting operator).

Prefix

Примером префиксного выражения является выражение с оператором try.

Postfix

Постфиксных выражений также немало в Swift: — вызов функции является самым явным postfix expression; — вызов .init(…); — явное обращение к элементу экземпляра типа (Explicit Member Expression); — постфиксное Self-выражение используется для возвращения типа Type.self; — Subscript-выражение используется для вызова объявленного subscript; — Force unwrapping-выражение используется, когда Optional точно не nil (ну или когда почти :)) с помощью постфикс оператора !; — Optional-Chaining-выражение с постфикс оператором ? для безопасного вызова Optional-типов.

2-20219-471bc1.jpg

В следующей публикации поговорим с вами о Statements и Declarations, не пропустите!

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

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

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

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто