AppleのTed Kremenek氏は9月20日(現地時間)、プログラミング言語「Swift」のバージョンアップ版「Swift 5.1」を正式にリリースしたことを発表しました(公式ブログ)。
Swift 5.1ではモジュールの安定化が導入されたほか、プロパティラッパーや、"opaque result types"、"key path member lookup", "ordered collection diffing"、Stringの新APIといったさまざまな新機能が導入されています。
モジュールの安定化では、バイナリフレームワークのAPIをテキストベースのモジュールインターフェイスファイルで定義し、異なるバージョンのコンパイラを使用してコードをコンパイルする事ができるようになります。これによりSwiftのバージョンにかかわらず使用できるモジュールが作成可能となります。
標準ライブラリの更新では以下の機能が含まれます:
- 適切なタイプのコレクションの差分の処理と更新のサポート
- ストレージが割り当てられる前の配列の初期化とアクセスの柔軟性の向上
- 文字列の操作を容易にする追加のAPI。連続した文字列の作成と処理、Unicodeテキストを操作するためのヘルパー、String.IndexとRangeの汎用イニシャライザーを含む
- SIMD Typeを操作するためのさまざまAPIの改善。vectorの拡張、縮小、vector swizzleのサポートなど含む
- 一意の識別子を必要とするエンティティをサポートするための識別可能なプロトコル
また以下の言語とコンパイラの更新も含まれます:
- プロパティ値のカスタムアクセスパターンを定義するプロパティラッパーの導入
- Opaque Result Types: 戻り値の方を抽象化
- returnキーワードは、単一式のクロージャーでは不要に
- Selfをクラスと値型に使用できるように
- コンパイラがデフォルトの初期化子を使用してプロパティのデフォルト値を合成するように
新機能の詳細はブログで確認可能です。
Swifth 5.1はXcode 11に同梱されているほか、Ubuntu 18.04、Ubuntu 16.04、Ubuntu 14.04用の実行ファイル、ソースコードがダウンロード可能です。