Swift Digest
Blog | Swift.org Blog

Swift 4.2 リリース

Swift 4.2 Released!

このダイジェストはClaude Opus 4.7 / 4.8によって生成されたものです(License)。原文はこちら

この記事の要点

主な変更点

ジェネリクスの改善

条件付き適合(conditional conformance)のサポートが完成し(SE-0143)、Swift 4.2 は言語におけるジェネリクスの構想の実装を大きく前進させました。ジェネリクスのサポートが改善されると、コードに必要なボイラープレートが減り、より多くのコードを再利用できるようになります。

条件付き適合とは、ジェネリックな型が、その型引数が一定の条件を満たすときにだけプロトコルへ適合できる仕組みです。たとえば Array は、要素が Equatable のときにだけ Equatable に適合します。

標準ライブラリの更新

標準ライブラリには、Hashable プロトコルの改善や、新たに統一された乱数生成の関数・プロトコル群など、多くの新機能が加わりました。

言語・コンパイラの更新

開発体験に目に見える影響を与える改善が多数入りました。

また、Swift Evolution プロセスを経た次の Proposal も実装されています。

binary compatibility に向けた前進

Swift 4.2 は ABI の安定化へさらに近づき、将来のリリースでの binary compatibility を可能にする土台を整えました。ただし Swift 4.2 自体で ABI が安定するわけではありません。

Package Manager の更新

Swift Package Manager にも新機能が加わりました。

また、次の Package Manager 関連 Proposal も実装されています。

移行とドキュメント

Swift 4.2 は Swift 4 / 4.1 / 3 とソース互換です。ただし、Swift 3 とのソース互換を提供する最後のリリースです。Xcode 10 には多くのソース変更を自動処理できるコードマイグレータが含まれ、機械的でない変更を案内する移行ガイドも用意されています。Swift 4.2 に対応した『The Swift Programming Language』の更新版も Swift.org で公開されています。

Swift 利用者への影響

関連リンク