Это обёртка для значения, которая добавляет дополнительные функции или настройки.
1. Пример:
2. Обеспечивает удобство и декларативный подход к программированию.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
17%
Используя if-else сравнения
28%
С помощью for-in циклов
6%
Используя while циклы
48%
С помощью switch и диапазонов
Anonymous Quiz
45%
Условная поддержка протоколов в зависимости от типа
16%
Способность классов адаптироваться к изменениям
33%
Конформация к протоколу в зависимости от состояния приложения
5%
Ограничение на количество реализаций протокола
1. Асинхронность позволяет выполнять задачи без блокировки основного потока, даже если она работает в одном потоке.
2. Многопоточность подразумевает выполнение задач параллельно в разных потоках.
3. Асинхронность экономит ресурсы, а многопоточность увеличивает производительность за счёт параллелизма
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Anonymous Quiz
45%
Использование throw внутри замыкания
4%
Использование exit внутри замыкания
14%
Использование break внутри замыкания
37%
Использование return внутри замыкания
Anonymous Quiz
55%
С помощью атрибута @escaping
15%
С помощью атрибута @inline
17%
С помощью атрибута @autoclosure
13%
С помощью атрибута @concurrent
1. Упрощает код за счёт декларативного стиля программирования.
2. Интегрирован с инструментами Apple, такими как Xcode, для предпросмотра изменений в реальном времени.
3. Позволяет писать адаптивные интерфейсы с минимальными усилиями.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Anonymous Quiz
26%
public(set)
44%
private(set)
18%
internal(set)
12%
open(set)
🤔1
Anonymous Quiz
12%
ArraySlice имеет дополнительные методы
67%
ArraySlice представляет подмножество данных Array
10%
ArraySlice поддерживает многомерные массивы
12%
ArraySlice оптимизирован для больших данных
2. Программистам придётся вручную проверять наличие значений, что повысит вероятность ошибок и крашей.
3. Опционалы делают код более безопасным и читаемым, позволяя явно выражать ситуацию, когда значение может отсутствовать.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Anonymous Quiz
20%
Proxy
26%
Mediator
17%
Facade
37%
Observer
❤1
Anonymous Quiz
26%
Использование делегирования
18%
Реализация кастомных событий с замыканиями
55%
Использование KVO (Key-Value Observing)
1%
Применение паттерна Command
1. Это механизм синхронизации, который ограничивает доступ к ресурсу только одному потоку в определённый момент времени.
2. Он блокирует другие потоки до завершения работы текущего.
3. Используется для предотвращения race condition при работе с общими данными.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
5%
noinline
31%
dynamic
8%
virtual
56%
inline
Anonymous Quiz
36%
Тип, ограниченный протоколом с ассоциированными типами
26%
Тип, который скрывает конкретный тип
26%
Универсальный тип, который может принимать любой другой тип
12%
Тип данных, который можно инстанциировать
2. Минимизировать использование динамических вызовов, предпочитая статическую диспетчеризацию.
3. Применять встроенные функции (map, reduce) вместо ручных циклов для оптимизации.
4. Убирать лишние аллокации памяти и эффективно работать с массивами и коллекциями.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Anonymous Quiz
16%
Принцип единственной ответственности
24%
Принцип открытости/закрытости
24%
Принцип замещения Барбары Лисков
37%
Принцип инверсии зависимостей
Anonymous Quiz
80%
throw выкидывает ошибку, rethrow - перебрасывает её из вложенной функции
10%
throw используется в замыканиях, rethrow - в функциях
1%
throw и rethrow синонимы
8%
rethrow более специфичен для типов исключений
1. Классы поддерживают наследование, что делает сложным автоматическое создание инициализатора, учитывающего все поля, включая родительские.
2. Инициализация в классах может включать дополнительные логики, которые сложно определить на этапе компиляции.
3. Структуры, в отличие от классов, не имеют этих ограничений, поэтому memberwise инициализатор создаётся автоматически.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
13%
Использование #system(iOS)
40%
Использование #platform(iOS)
37%
Использование #if os(iOS)
10%
Использование #ifdef iOS