この記事の要点
- Swift 3.0 の Developer Preview 1 がリリースされました。これは正式版ではなく、Swift 3 の開発途上のスナップショットを、
masterの最新版よりも安定した品質で提供する「seed」(ベータ)版です。 - 多数の Swift Evolution Proposal が新たに実装されており、API 設計ガイドラインの適用や Objective-C API の取り込み方法の刷新、C スタイルの
forループや++/--演算子の削除など、言語と標準ライブラリの大規模な見直しが含まれます。 - Swift 3 は Swift 2.2.1 からのソース破壊的(source-breaking)なリリースです。特に SE-0005 により Objective-C API の Swift への取り込み方が大きく変わるため、既存コードには移行作業が必要です。
主な変更点
実装された Swift Evolution Proposal
Swift 3.0 Preview 1 では、多数の Swift Evolution Proposal が新たに実装されました。代表的なものを挙げます。
- API 設計ガイドラインの全面適用: 標準ライブラリへの API 設計ガイドラインの適用(SE-0006)、API 設計ガイドライン自体の策定(SE-0023)、それに伴う Set API の書き直し(SE-0059)など、命名規則を中心とした大規模な見直しが入りました。
- Objective-C API の取り込み刷新: Objective-C API をより自然な Swift として取り込む変換(SE-0005)、定数の型としての取り込み(SE-0033)、メンバーとしての取り込み(SE-0044)、軽量ジェネリクスの取り込み(SE-0057)などが実装されました。
- 古い構文の削除: カリー化された
func宣言構文(SE-0002)、関数パラメータのvar(SE-0003)、++/--演算子(SE-0004)、条件式・加算式を伴う C スタイルのforループ(SE-0007)、暗黙のタプル展開(SE-0029)などが削除されました。 - 構文・型システムの改善:
ImplicitlyUnwrappedOptional型の廃止(SE-0054)、UnsafePointerのヌル許容性をOptionalで明示(SE-0055)、ジェネリックな型エイリアス(SE-0048)、関数型の引数を必ず括弧で囲む構文の統一(SE-0066)、コレクションとインデックスの新しいモデル(SE-0065)などが入りました。 - デバッグ識別子の刷新:
__FILE__などのデバッグ識別子を#file形式へ近代化(SE-0028)しました。
ここで挙げたのは一部です。完全な一覧は元記事を参照してください。
ドキュメント
Swift 3.0 に対応した『The Swift Programming Language』の更新版が Swift.org で公開され、Apple の iBooks ストアでも無料で入手できます。
入手方法
- Apple(Xcode): Swift 3.0 Preview 1 は Xcode 8 beta 1 の一部として無料で利用できます。
- Linux(Ubuntu 14.04 / 15.10): Ubuntu 14.04 / 15.10 向けの公式バイナリが Swift.org からダウンロードできます。
Foundation と Linux(Core Libraries)
NS プレフィックスを取り除く変更は、Core Libraries 側の Foundation API 実装にはまだすべて反映されていません。これは将来のベータで解消される予定とされました。
Swift 利用者への影響
- 既存コードには移行作業が必要です。 Swift 3 は Swift 2.2.1 からのソース破壊的なリリースで、多くの構文の洗練に加え、特に SE-0005 による Objective-C API の取り込み方の変更が広範に影響します。移行のガイドとして公式の移行ガイドが用意されています。
- これは正式版ではなくプレビュー版です。 Developer Preview は Swift 3 の開発途上を切り出したもので、特に明記がない限り Swift 3 の最終版とはみなされません。本番採用ではなく、来たる変更の確認や移行準備に使う位置づけです。
- より一貫した API で書けるようになります。 API 設計ガイドラインの適用や Objective-C API の取り込み刷新により、標準ライブラリやインポートした API の命名がより Swift らしく一貫したものになります。
関連リンク
- このプレビューの位置づけとなるリリース計画については Swift 3.0 のリリースプロセス を参照してください。
- 言語をほぼ据え置いたまま新しい Apple SDK に対応する同時期の選択肢については Swift 2.3 を参照してください。
- Swift 3 の API 変革の背景については 近日公開: Swift API の大変革 を参照してください。
- Swift のダウンロード