Swift 5 совместим со Swift 4, а в Xcode 10.2 есть инструмент миграции, который автоматически вносит необходимые изменения.
Важные изменения:
- ABI стабильность – бинарная совместимость приложений и библиотек, скомпилированных с помощью разных версий Swift. Начиная с iOS 12.2 и macOS 10.14.4, операционные системы Apple будут содержать все необходимое для запуска Swift-приложений. Это означает, что приложения, написанные на Swift 5 и более поздних версиях, не будут содержать рантайм и стандартную библиотеку языка. Поэтому приложения, написанные на Swift 5, станут весить примерно на 3-10 мегабайт меньше.
- В стандартной библиотеке появился удобный способ передачи и обработки ошибок в асинхронном API.
- В Swift 5 добавили так называемые raw strings, в которых кавычки и бэкслеш интерпретируются именно как символы, и для их использования в литерале не нужно использовать символ экранирования
- С помощью интерполяции строк можно добавить в строковый литерал значение какой-либо переменной или результат выражения. Начиная с 5-ой версии языка, появилась возможность расширять то, как наши выражения добавляются в конечную строку.
- Метод compactMapValues позволяет преобразовать значения словаря, а также отфильтровать их, если само преобразование возвратило nil.
- Новый атрибут @dynamicCallable позволяет пометить тип как «вызываемый». Это означает, что мы сможем вызвать тип как обычный метод.
Всего в новой версии 28 изменений, более подробно о них вы можете прочитать тут или тут. Swift 5 уже работает в Swift Playgrounds.