Вышла новая версия языка Swift — Swift 3.1

Вчера была официально выпущена новая версия языка Swift — Swift 3.1. В обновлённой версии была усовершенствована стандартная библиотека, а также обновлены реализация Swift на Linux и диспетчер пакетов Swift Package Manager. Кроме того, компилятор Swift 3.1 теперь автоматически предкомпилирует связующие заголовки Objective-C, что позволяет ускорить настройку отладочного процесса в проектах с разнородными источниками.

Выпуск Swift 3.1 является для компании второстепенным. Он совместим с Swift 3.0 на уровне исходного кода. Новая версия содержит следующие изменения:

  • Добавлены два метода протокола Sequence:
    protocol Sequence {
      // ...
      /// Returns a subsequence by skipping elements while `predicate` returns
      /// `true` and returning the remainder.
      func drop(while predicate: (Self.Iterator.Element) throws -> Bool) rethrows -> Self.SubSequence
      /// Returns a subsequence containing the initial elements until `predicate`
      /// returns `false` and skipping the remainder.
      func prefix(while predicate: (Self.Iterator.Element) throws -> Bool) rethrows -> Self.SubSequence
    }
  • Расширен атрибут @availability для обозначения жизненного цикла объявления:
    @available(swift, obsoleted: 3.1)
    class Foo {
      //...
    }
  • Улучшены инициализаторы числовых преобразований;
  • Заменён метод UnsafeMutablePointer.initialize(from:);
  • Обновлена реализация Swift на Linux;
  • Значительно изменен диспетчер пакетов.

Переход на Swift 3.1

Как было сказано, Swift 3.1 совместим с Swift 3.0. Процесс перехода на новую версию Swift упрощается за счёт программы переноса, встроенной в Xcode 8.3. Также доступен соответствующий гайд.

Платформы

Официальные бинарные коды для Ubuntu 14.04, Ubuntu 16.04 и Ubuntu 16.10 теперь можно скачать с официального сайта. Кроме того, Swift 3.1 предустановлен в Xcode 8.3.

Основные принципы работы с языком Swift и практические рекомендации вы можете найти в нашей статье.

Источник: официальный блог Swift