О чём не задумываются современные программисты Swift 5. Часть 1 | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
iOS Developer. Professional Kotlin Backend Developer Flutter Mobile Developer Symfony Framework C++ Developer. Basic Unity Game Developer. Basic Java Developer. Professional
-35%
Highload Architect Unity Game Developer. Professional React.js Developer Специализация Java-разработчик
-25%
Алгоритмы и структуры данных
-16%
Scala-разработчик C# Developer. Professional
-23%
Разработчик голосовых ассистентов и чат-ботов Team Lead Архитектура и шаблоны проектирования NoSQL Web-разработчик на Python Golang Developer. Professional PostgreSQL Vue.js разработчик Супер-практикум по использованию и настройке GIT Разработчик IoT Подготовка к сертификации Oracle Java Programmer (OCAJP) Программист С HTML/CSS
Инфраструктура
Инфраструктурная платформа на основе Kubernetes Microservice Architecture Базы данных Highload Architect Reverse-Engineering. Professional
-8%
Network engineer. Basic Administrator Linux.Basic MongoDB Infrastructure as a code MS SQL Server Developer Cloud Solution Architecture Мониторинг и логирование: Zabbix, Prometheus, ELK Супер-практикум по использованию и настройке GIT Разработчик IoT Экcпресс-курс «ELK» Супер-интенсив "Tarantool" Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» Экспресс-курс «Введение в непрерывную поставку на базе Docker»
Корпоративные курсы
Безопасность веб-приложений Экосистема Hadoop, Spark, Hive Пентест. Практика тестирования на проникновение Node.js Developer Java QA Engineer. Basic
-18%
Reverse-Engineering. Professional
-8%
DevOps практики и инструменты NoSQL Reverse-Engineering. Basic Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Game QA Engineer Супер - интенсив по Kubernetes Дизайн сетей ЦОД Экспресс-курс «IaC Ansible» Экспресс-курс по управлению миграциями (DBVC) Экспресс-курс "Версионирование и командная работа с помощью Git" Основы Windows Server
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

О чём не задумываются современные программисты 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 комментариев
Для комментирования необходимо авторизоваться