@escaping @Sendable @MainActor @autoclosure () async -> VoidКаждый раз, когда мы встречаем сложные термины, может казаться - что это поймут не только лишь все, но с помощью разбора теории и пары практических примеров почти всегда изначальная сложность исчезает или хотя бы кратно уменьшается.
📖 Статья Джейкоба Бартлетта посвящена реализации мема, который изначально заставил автора почувствовать синдром самозванца.
В ней последовательно разбираются атрибуты от escaping до MainActor, и в итоге Джейкоб приходит к варианту:
Task {
await allTheAttributes(await helloWorld())
}
func allTheAttributes(
_ then: @escaping @Sendable @MainActor @autoclosure () async -> Void
) async {
Task {
await then()
}
}
@MainActor func helloWorld() {
print("Hello, world!")
}
😅 Как говорится, не пробуйте это дома (или на продакшне без должных навыков).
Кстати, напомню, что в канале был пост с огромным глоссарием по Swift Concurrency.
✅ А вот тут есть примеры тем, вопросов - и несколько разборов подводных камней в Swift Concurrency.
😃 iOS Dev
