ドキュメント改訂履歴(Document Revision History)
最終更新
最終更新
最終更新日: 2024/10/5 原文: https://docs.swift.org/swift-book/RevisionHistory/RevisionHistory.html
本書に対する最近の変更点を確認する。
Swift6 に更新しました
セクションに、Strict Concurrency チェックへの移行に関する情報を追加しました
セクションに、特定の型のエラーをスローことについての情報を追加しました
の章に package レベルのアクセスに関する情報を追加しました
Swift5.10 に更新しました
ネストされたプロトコルの情報をセクションに追加しました
とセクションに非推奨情報を追加しました
Swift 5.9.2 に更新しました
セクションに borrowing
と consuming
修飾子に関する情報を追加しました
に、宣言後の定数の値の設定に関する情報を追加しました
タスク、タスクグループ、タスクキャンセルに関する情報をの章に追加しました
の章に、既存の Swift パッケージでマクロを実装する方法ついての情報を追加しました
extension マクロが conformance マクロに置換されたので、のセクションを更新しました
バックデプロイに関する情報をセクションに追加しました
Swift 5.9 に更新しました
グループ化に空白行を使用するように公式の grammar を整形しました
Swift 5.8 に更新しました
全体的な細かい修正と追加
Swift 5.7 に更新しました
Swift 5.6 に更新しました
全体的な数字の視覚的スタイリングを更新しました
Swift 5.5 に更新しました
Swift 5.4 に更新しました
Swift 5.3 に更新しました
Swift 5.2 に更新しました
Swift 5.1 に更新しました
Swift 5.0 に更新しました
Swift 4.2 に更新しました
Swift 4.1 に更新しました
Swift 4.0.3 に更新しました
Swift 4.0 に更新しました
Swift 3.1 に更新しました
Swift 3.0.1 に更新しました
Swift 3.0 に更新しました
OS X の変わりに macOS、ErrorProtocol
の代わりに Error
、StringLiteralConvertible
の代わりに ExpressibleByStringLiteral
などのプロトコル名を使用するように説明を更新しました
動的型式セクションで、新しい type(of:)
を使用するように説明を更新しました
Swift 2.2 に更新しました
C 言語スタイルの for
ループ、++
前置および後置演算子、--
前置および後置演算子の説明を削除しました
可変関数引数とカリー関数の特別な構文の説明を削除しました
Swift 2.1 に更新しました
Swift 2.0 に更新しました
Debugging with Assertions(アサーションを使ったデバッグ)セクションに、ユーザ定義のアサーションが無効になる場合についての記載を追加しました
Swift 1.2 に更新しました
プロトコルのキャストは、@objc
プロトコルに制限されなくなりました
Swift 1.1 に更新しました
iOS と OS X アプリを構築するための Apple の新しいプログラミング言語 Swift 1.0 についての新しい文書
カリー関数のより詳しい情報を追加しました
NSString
の length
プロパティは、utf16count
ではなく、Swift のネイティブの String
型の utf16count
にマッピングされるようになりました
の章とセクションに、if
式と switch
式に関する情報を追加しました
の章を追加し、コンパイル時にコードを生成することについての情報を追加しました
の章に、Box 型プロトコルに関する情報を追加しました
のセクションを更新し、buildPartialBlock(first:)
メソッドと buildPartialBlock(cumulated:next:)
メソッドについての情報を追加しました
とに visionOS を追加しました
を追加し、エラーハンドリングの以外の defer
の使い方を示しました
アクターとタスク間のデータ送信に関する情報を セクションに追加しました。また、 属性と 属性に関するセクションを追加しました
正規表現の作成に関する情報を セクションに追加しました
if-let
の短縮形に関する情報を のセクションに追加しました
#unavailable
に関する情報を セクションに追加しました
セクションにメソッドチェーンや他の後置式の周りで #if
が使えることについての情報を追加しました
非同期関数、Task、およびアクターについての情報をの章、および、、およびセクションに追加しました
セクションに、アンダースコアで始まる識別子についての情報を追加しました
とセクションに、リザルトビルダについての情報を追加しました
セクションに、関数呼び出しの中で in-out パラメータを unsafe pointer に暗黙的に変換する方法についての情報を追加しました
とセクションを更新しました。関数は複数の可変長パラメータを受け取ることができるようになりました
セクションを更新しました。暗黙メンバ式を繋げて使えるようになりました
セクションに、複数の末尾クロージャについての情報を追加し、セクションに、複数の末尾クロージャをパラメータに合わせる方法についての情報を追加しました
セクションに、列挙型が Comparable
プロトコルに準拠するための合成実装についての情報を追加しました
セクションに、ジェネリック where
句をより多くの場所に記載できる旨を追加しました
セクションに、オプショナル値を unowned
参照に使用する方法についての情報を追加しました
セクションに @main
属性についての情報を追加しました
セクションに、#filePath
を追加し、#file
の記載を更新しました
セクションを更新しました。多くのシナリオでクロージャが暗黙的に self
を参照できるようになりました
とのセクションを更新しました。catch
句が複数のエラーにマッチングできるようになりました
Any
の詳細を追加し、セクションに移動しました
セクションを更新しました、lazy
プロパティでもオブザーバが使用できるようになりました
セクションを更新しました。列挙型のメンバがプロトコル要件を満たすことができるようになりました
セクションを更新して、get がいつオブザーバの前に呼び出されるかついて記述しました
の章を更新して、アトミック操作について記述しました
セクションに、クロージャの代わりにキーパスを渡すことについての情報を追加しました
セクションに、関数呼び出し構文にクラス、構造体、および列挙型のインスタンスを使用できるようにする糖衣構文(シンタックスシュガー)についての情報を追加しました
セクションを更新しました。subscript でデフォルトパラメータを使用できるようになりました
セクションを更新しました。より多くのコンテキストで Self
が使えるようになりました
セクションを更新して、暗黙アンラップオプショナル値をオプショナルまたは非オプショナルのどちらでも使用できることをより明確にしました
の章に、戻り値に特定の名前の戻り値の型を提供するのではなく、戻り値が準拠するプロトコルを指定する関数についての情報を追加しました
セクションに、プロパティラッパについての情報を追加しました
セクションに、ライブラリエボリューションのための frozen な列挙型と構造体についての情報を追加しました
とセクションに、return
を省略した関数についての情報を追加しました
セクションに、型への subscript の使用について情報を追加しました
セクションを更新しました。列挙型ケースとオプショナル値をマッチングできるようになりました
セクションを更新しました。メンバワイズイニシャライザがデフォルト値を持つプロパティのパラメータを省略することができるようになりました
セクションに、実行時にキーパスで検索された動的メンバについての情報を追加しました
のターゲット環境リストに macCatalyst
を追加しました
セクションを更新しました。Self
を使用して、現在のクラス、構造体、または列挙型宣言で導入された型を参照することができるようになりました
セクションを追加し、拡張区切り文字についての情報をセクションに追加しました
dynamicCallable
属性を使用してインスタンスを関数として動的に呼び出すことについての情報を記載したセクションを追加しました
unknown
スイッチケース属性を使用した switch
文の将来の列挙ケースを扱う方法についての情報を記載したとセクションを追加しました
セクションに、識別キーパス(\.self
)についての情報を追加しました
のプラットフォーム条件に(<
)演算子の使用方法についての情報を追加しました
セクションに、列挙型の全てのケースへのアクセス方法についての情報を追加しました
セクションに、#error
と #warning
についての情報を追加しました
セクションの inlinable
と usableFromInline
属性に、インライン化についての情報を追加しました
セクションの dynamicMemberLookup
属性に、実行時に名前で検索するメンバについての情報を追加しました
セクションに、require_stored_property_inits
および warn_unqualified_access
属性についての情報を追加しました
セクションに、Swift コンパイラのバージョンに応じて、条件付きでコンパイルする方法についての情報を追加しました
セクションに、#dsohandle
についての情報を追加しました
セクションに、等価演算子の合成実装についての情報を追加しました
の章のセクションと、の章のセクションに、条件付きプロトコル準拠についての情報を追加しました
セクションに、再帰的プロトコル制約についての情報を追加しました
セクションに、canImport()
と targetEnvironment()
プラットフォーム条件についての情報を追加しました
セクションを更新しました。subscript にキーパスを使用できるようになりました
の章に、メモリへの排他アクセスについての情報を追加しました
セクションを追加しました。ジェネリック where
句で関連型を制約できるようになりました
の章のセクションと、の章のセクションに、複数行文字列リテラルについての情報を追加しました
セクションの objc
属性の説明を更新しました。この属性が推論される場所がより少なくなりました
セクションを追加しました。subscript はジェネリックにできます
の章のセクションと、の章のセクションの説明を更新しました。プロトコル合成型にスーパークラスの要件を含めることができるようになりました
のプロトコル拡張の説明を更新しました。final
は使用できなくなりました
セクションに、前提条件と致命的エラーについての情報を追加しました
セクションに、要件を含む extension についての情報を追加しました
セクションに範囲全体を繰り返す例を追加しました
セクションに、失敗可能な数値変換の例を追加しました
セクションに、Swift 言語バージョンを使用した available
属性の使い方についての情報を追加しました
セクションの説明を更新し、関数型に引数ラベルを書くことができないことを記載しました
セクションの Swift 言語バージョン番号の説明を更新しました。オプショナルのパッチ番号が使用できるようになりました
セクションの説明を更新し、Swift は、タプル型の単一のパラメータを受け取る関数と、複数のパラメータを受け取る関数が区別できるようになりました
の章から動的型式のセクションを削除しました。type(of:)
は Swift 標準ライブラリ関数になりました
の章の弱参照、非所有参照の説明を更新しました
セクションに、unowned
、unowned(safe)
と unowned(unsafe)
修飾子についての情報を追加しました
セクションに、Any 型の値が期待される場所にオプショナルの値を使用することについての記載を追加しました
括弧付き式とタプル式の説明を分けるように、の章を更新しました
の章とセクションの関数の説明を、デフォルトで全てのパラメータが引数ラベルを持つように更新しました
の章の演算子の説明を更新しました。これらの演算子をグローバル関数としてはなく型メソッドとして実装できるようになりました
の章に、open
と filePrivate
アクセスレベル修飾子についての情報を追加しました
セクションの inout
の説明を、パラメータ名の前ではなくパラメータの型の前に使用するように更新しました
とセクションと、の章の説明で、@noescape
および @autoclosures
属性を宣言属性から型属性へ更新しました
の章のセクションと、の章のセクションに、演算子の優先順位グループについての情報を追加しました
の章のセクションと、の章の説明を更新しました。ジェネリック where
句を宣言の最後に書くことができるようになりました
セクションの説明を更新しました。クロージャはデフォルトが非エスケープになりました
の章のセクションと、の章のセクションの説明を更新しました。if
、while
、guard
文は、where
句なしで、カンマ区切りリストの条件を使用できるようになりました
の章のセクションと、の章のセクションに、複数のパターンを持つ列挙ケースについての情報を追加しました
セクションの関数型の説明を更新しました。引数ラベルが関数の型の一部ではなくなりました
の章のセクションと、の章のセクションの説明を更新し、新しい Protocol1 & Protocol2
構文を使用するようになりました
セクションで、#sourceLocation(file:line:)
構文を使用するように、行制御文の説明を更新しました
の説明を更新し、新しい Never
型を使用するようにしました
セクションに、playground リテラルについての情報を追加しました
セクションの説明を更新し、非エスケープクロージャのみが in-out パラメータをキャプチャできることを記載しました
セクションのデフォルトパラメータの説明を更新しました。関数呼び出し時にデフォルトパラメータを並べ替えることができなくなりました
の章でコロンを使用するように属性引数を更新しました
セクションに、再スロー関数のキャッチブロック内でエラーをスローすることについての情報を追加しました
セクションに、Objective-C プロパティの get または set のセレクタへのアクセスについての情報を追加しました
セクションに、ジェネリックなタイプエイリアスとプロトコル内でのタイプエイリアスの使用について情報を追加しました
セクションの説明を更新し、パラメータ型の周囲に括弧が必須だということを記載しました
の章を更新して、@IBAction
、@IBOutlet
、および @NSManaged
属性は @objc
属性を暗黙的に含んでいることを記載しました
セクションに、@GKInspectable
属性についての情報を追加しました
のオプショナルのプロトコル要件の説明を更新し、Objective-C と相互運用されるコードでのみ使用できることを明確にしました
セクションから、関数パラメータを使用して明示的に let
を使用することの説明を削除しました
の章から Boolean
プロトコルの説明を削除しました。このプロトコルは Swift 標準ライブラリから削除されました
セクションの @NSApplicationMain
属性の説明を修正しました
セクションに、Swift バージョンに応じて、コードをコンパイルする方法についての情報を追加しました
セクションに、引数名だけが異なるメソッドまたはイニシャライザを区別する方法についての情報を追加しました
セクションに、Objective-C セレクタの #Selector
構文についての情報を追加しました
とセクションの、associatedtype
キーワードを使った関連型の説明を更新しました
セクションの、インスタンスが完全に初期化される前に nil
を返すイニシャライザについての情報を更新しました
セクションに、タプルの比較についての情報を追加しました
セクションに、外部パラメータ名にキーワードを使用する方法についての情報を追加しました
セクションの @objc
属性の説明を更新し、列挙型と列挙ケースでもこの属性を使用できることを記載しました
セクションの、ドットを含むカスタム演算子の説明を更新しました
セクションに、再スロー関数が直接エラーをスローできないことを記載した記載を追加しました
セクションに、in-out パラメータとしてプロパティを渡した際に呼ばれるプロパティオブサーバについての記載を追加しました
の章に、エラー処理についてのセクションを追加しました
セクションに、メモリ割り当て解除プロセスをより明確に表示するために図を更新しました
とセクションを更新しました。文字列補間に文字列リテラルを含めることができるようになりました
セクションに、@noescape
属性についての情報を追加しました
セクションとセクションの、tvOS についての情報を更新しました
セクションに、in-out パラメータの動作についての情報を追加しました
セクションに、キャプチャリストで指定された値がキャプチャされる方法についての情報を追加しました
セクションを更新し、オプショナルチェーンを介して代入する方法が明確になるようにしました
セクションの autoclosure の説明を改善しました
の章の ??
演算子を使用する例を追加しました
の章、セクション、セクション、セクション、およびセクションに、エラー処理についての情報を追加しました
セクションを更新しました。全ての型が ErrorType
プロトコルに準拠するようになりました
セクションに、新しい try?
キーワードについての情報を追加しました
の章のセクションと、の章のセクションに、再帰的な列挙型の情報を追加しました
の章のセクションと、の章のセクションに、API アベイラビリティチェックについての情報を追加しました
の章のと、の章のセクションに、新しい guard
文についての情報を追加しました
の章のについての情報を追加しました
の章のセクションに、単体テストでのアクセス制御についての情報を追加しました
の章のセクションに、新しいオプショナルパターンについての情報を追加しました
セクションを更新し、repeat-while
ループについての情報を追加しました
の章を更新しました。String
は Swift 標準ライブラリの CollectionType
プロトコルに準拠しなくなりました
セクションに、新しい Swift 標準ライブラリの print(_:separator:terminator)
関数についての情報を追加しました
の章のセクションと、の章のセクションに、String
型の Raw Value を持つ列挙ケースの動作についての情報を追加しました
セクションに、@autoclosure
属性または @autoclosure(escaping)
についての情報を追加しました
セクションを更新し、@available
および @warn_unused_result
属性についての情報を追加しました
セクションを更新し、@convention
属性についての情報を追加しました
セクションに、where
句を使用して複数のオプショナルバインディングを使用する例を追加しました
セクションに、+
演算子を使用して文字列リテラルを連結する際のコンパイル時の動作についての情報を追加しました
セクションに、イニシャライザ式を使用してインスタンスを構築する際の Metatype の比較についての情報を追加しました
セクションの @NSManaged
属性の説明を更新しました。属性を特定のインスタンスメソッドに適用できるようになりました
セクションを更新しました。可変長パラメータは、関数のパラメータリスト内の任意の位置で宣言できるようになりました
セクションに、スーパークラスのイニシャライザの結果を強制アンラップすることで、失敗しないイニシャライザから失敗可能イニシャライザに委譲できることについての情報を追加しました
セクションに、関数を列挙ケースとして使用できることについての情報を追加しました
セクションに、イニシャライザを明示的に参照する方法についての情報を追加しました
セクションに、ビルド構成および行制御文についての情報を追加しました
セクションに、Metatype の値からクラスインスタンスを構築する方法についての記載を追加しました
セクションに、弱参照がキャッシュに適していないことについての記載を追加しました
セクションの記載を更新し、格納型プロパティが遅延初期化されることを記載しました
セクションを更新し、変数と定数がクロージャ内でキャプチャされる方法を明確にしました
セクションを更新し、クラスに @objc
属性を適用できる場合についての説明を追加しました
セクションに、throw
文を実行する際のパフォーマンスについての記載を追加しました。のセクションの do
文にも同様の情報を追加しました
セクションの、クラス、構造体、および列挙型の格納型プロパティおよび計算型プロパティについての情報を更新しました
セクションの、ラベル付き break 文についての情報を更新しました
willSet
と didSet
オブザーバの動作を明確にするために、セクションの記載を更新しました
セクションに、private
アクセスの範囲についての記載を追加しました
セクションに、ガベージコレクションと ARC の弱参照の違いについての記載を追加しました
セクションの Unicode スカラの定義をより正確なものに更新しました
Swift ネイティブの Set
コレクション型ができました。詳細については、を参照ください
@autoclosure
は、型ではなく、パラメータ宣言の属性になりました。新しい @noescape
パラメータ属性もあります。詳細については、を参照ください
型メソッドと型プロパティは、宣言修飾子の static
キーワードを使用できるようになりました。詳細については、を参照ください
Swift に as?
と as!
の失敗可能ダウンキャスト演算子が追加されました。詳細については、を参照ください
文字列インデックス()について新しいガイドセクションを追加しました
からオーバーフロー分割演算子(&/
)とオーバーフロー剰余演算子(&%
)を削除しました
定数および定数プロパティ宣言と初期化のルールを更新しました。詳細については、を参照ください
文字列リテラル内の Unicode スカラの定義を更新しました。を参照ください
を更新し、開始と終了インデックスが同じ半開範囲は空になることを記載しました
を更新し、変数のキャプチャルールを明確にしました
を更新し、符号付き整数と符号なし整数のオーバーフローの動作を明確にしました
を更新し、プロトコル宣言の範囲とメンバを明確にしました
を更新し、クロージャのキャプチャリストでの weak や unowned 参照の構文を明確にしました
セクションを更新し、数学演算子、その他のシンボル、および Dingbats Unicode ブロックなど、カスタム演算子がサポートしている文字の例を明示的に説明しました
定数は、ローカル関数スコープで初期化せずに宣言できるようになりました。最初に使用する前に値の設定が必要です。詳細については、を参照ください
イニシャライザ内で、定数プロパティは値を一度だけ割り当てることができるようになりました。詳細については、を参照ください
複数のオプショナルバインディングは、代入式のカンマ区切りのリストとして、単一の if
文で使用できるようになりました。詳しくは、を参照ください
は、後置式として使用しなければなりません
実行時に型キャストに失敗する可能性がある型は、as?
または as!
演算子を使用し、失敗しないことが保証されている型キャストは、as
演算子を使用します。詳細については、を参照ください
失敗可能イニシャライザ()の全ガイドを追加しました
プロトコルの失敗可能イニシャライザ要件()の説明を追加しました
Any
型の定数と変数に関数インスタンスを含めることができるようになりました。switch
文内での関数型のチェックとキャスト方法を示すために、の例を更新しました
Raw Value を持つ列挙型は、toRaw()
メソッドではなく rawValue
プロパティ、 fromRaw()
メソッドではなく rawValue
パラメータを持つ失敗可能イニシャライザを持つようになりました。 詳しくは、とを参照ください
初期化の失敗を引き起こす失敗可能イニシャライザ()についての新しいセクションを追加しました
カスタム演算子に ?
を含めることができるようになりました。を更新し、改訂されたルールを記載しました。から有効な演算子文字セットの説明の重複を削除しました
プロトコル内のについての新しいセクションを追加しました
についての新しいセクションを追加しました
は、文字列補間を使用できるようになりました。使用できない記載を削除しました
セクションを更新し、String
と Character
を加算演算子(+
)または加算代入演算子(+=
)で組み合わせることができないことを反映しました。これらの演算子は String
でのみ使用されます。String
の末尾に単一の Character
を追加するには、String
型の append(_:)
メソッドを使用します
セクションに、availability
属性についての情報を追加しました
は、オプショナルの Bool
値を使用しているときに、混乱を避けるために、値がある場合に true
、ない場合に false
と評価されません。代わりに、==
または !=
演算子を指定して、オプショナルに値が含まれているかどうか、明示的な nil
チェックを行いましょう
(a ?? b
)ができました。これは、オプショナルの値が存在する場合はオプショナルの値をアンラップし、nil
の場合はデフォルト値を返します
セクションを更新、拡張し、文字列と文字の比較や、前方比較、後方比較は、拡張書記素クラスタの Unicode の正規等価性に基づいていることを反映し、例を示しました
を使って、mutating メソッドや演算子の呼び出し、subscript への値の割り当て、プロパティ値の設定を試すことができます。の情報は、これに応じて更新され、のメソッド呼び出しが成功したかどうかの例では、プロパティの設定が成功したかどうかをチェックする方法も例として示すように拡張しました
オプショナルチェーンを通じて、オプショナルの subscript にアクセスするための新しいセクション()を追加しました
を更新し、+=
演算子を使って配列にその単一の要素を追加できなくなりました。代わりに、append(_:)
メソッドを使用するか、単一の要素を持つ配列に +=
演算子を使用して追加します
範囲演算子() a...b
と a..<b
の開始値 a
を、終了値 b
より大きくしてはならないことを記載しました
の章を書き直して、イニシャライザのオーバーライドの紹介部分を削除しました。この章では、サブクラス内に新しい機能を追加し、オーバーライドを使用して既存の機能を変更することに焦点を当てています。の章の例は、description
プロパティをオーバーライドする方法を示すために書き換えられました。(サブクラスのイニシャライザで継承したプロパティのデフォルト値を変更する例は、の章に移動しました)
セクションを更新し、指定イニシャライザのオーバーライドを override
修飾子でマークする必要があることを記載しました
セクションを更新し、required
修飾子が全てのサブクラスの必須イニシャライザの実装の前に書かれ、自動的に継承したイニシャライザが必須イニシャライザの要件を満たすことができることを記載しました
中置演算子メソッド()に @infix
属性が必要なくなりました
の @prefix
および @postfix
演算子属性は、prefix
および postfix
宣言修飾子に置き換えられました
が同じオペランドに適用されたときに prefix
と postfix
演算子が適用される順序についての記載を追加しました
の演算子関数は、関数を定義するときに @assignment
属性を使用しなくなりました
を定義するときに修飾子を指定する順序が変更されました。例えば、operator prefix
ではなく prefix operator
と書くようになりました
に、dynamic
修飾子についての情報を追加しました
型推論がで動作する方法についての情報を追加しました
についての新しい章を追加しました
の章を更新し、Swift の Character
型が単一の Unicode 拡張書記素クラスタを表すことを反映しました。上の新しいセクションと、とについての詳しい情報も含まれています
セクションを更新し、文字列内の Unicode スカラを \u{n}
(n には 0 から 10FFFF の間の 16 進数が入る)で書けることを記載しました
Swift のネイティブ String
型は、uppercaseString
または lowercaseString
プロパティを使用しなくなりました。の対応するセクションは削除され、様々なコード例を更新しました
についての新しいセクションを追加しました
についての新しいセクションを追加しました
についての新しいセクションを追加しました
セクションを更新し、1 つの型注釈を持つ単一の行に複数の関連変数を定義できることを記載しました
@optional
、@lazy
、@final
と @required
属性は、optional
、lazy
、final
と required
宣言修飾子()になりました
本全体を参照して、..<
を(「半閉鎖範囲演算子」ではなく)として参照するように更新しました
を更新し、Dictionary
がブール値の isEmpty
プロパティを持つことを記載しました
を定義するときに使用できる文字の全リストを明確にしました
nil
とブール値 true
と false
はになりました
Swift の Array
型は、完全に値型のセマンティクスになりました。とを更新し、新しいアプローチを反映しました
は SomeType[]
ではなく [SomeType]
として書くようになりました
は、[KeyType: ValueType]
と書くように新しいセクションを追加しました
についての新しいセクションを追加しました
の例に、グローバルの sort(_:_:)
関数ではなくグローバルの sorted(_:_:)
関数を使用し、配列の新しい値型のセマンティクスを反映しています
についての情報を更新し、構造体の格納プロパティにデフォルト値がない場合でもメンバワイズイニシャライザが使用可能だということを明確にしました
に ..
ではなく ..<
を使用するようになりました
の例を追加しました