Ответ
Swift 6 — это следующая мажорная версия, фокусирующаяся на безопасности данных в параллельном (concurrent) коде и завершении эволюции языка. Основные ожидаемые изменения:
-
Строгая проверка параллелизма (Strict Concurrency Checking): Компилятор по умолчанию будет проверять код на соответствие модели изолированных акторов, выявляя потенциальные состояния гонки (data races). Это потребует явной аннотации кода с помощью
Sendable,@MainActorи др. -
Стабилизация акторов (Actors): Доработка и оптимизация изолированных типов (actors) для безопасного разделения изменяемого состояния между потоками.
// Актор защищает своё состояние от одновременного доступа actor Counter { private var value = 0 func increment() { value += 1 } func getValue() -> Int { return value } } // Использование требует await let counter = Counter() await counter.increment() let currentValue = await counter.getValue() -
Расширенные возможности макросов (Macros): Упрощение создания сложных макросов для генерации шаблонного кода (например, для JSON-парсинга).
-
Новые фичи языка: Введение ключевого слова
borrowingдля немодифицирующего заимствования, улучшения для типов-перечислений (enum) и строк.
Практический совет: Уже сейчас можно включить строгую проверку параллелизма в настройках проекта (SWIFT_STRICT_CONCURRENCY = complete) для подготовки кода к миграции на Swift 6.