ドキュメント改訂履歴(Document Revision History)
最終更新日: 2024/10/5
原文: https://docs.swift.org/swift-book/RevisionHistory/RevisionHistory.html
本書に対する最近の変更点を確認する。
2025-09-15
- Swift 6.2 に更新しました
- 基本(The Basics)のメモリ安全性(Memory Safety)セクションに、Swift がメモリ違反防止に役立つ問題に関する情報を追加しました
- 制御フロー(Control Flow)のパターン(Patterns)セクションに、
if case構文に関する情報を追加しました - 並行処理(Concurrency)章にメインアクター、分離、およびグローバルアクターに関する情報を追加しました
- プロトコル(Protocols)の暗黙的適合(Implicit Conformance to a Protocol)セクションに、明示的に適合を書かずに共通のプロトコルへ適合する方法や暗黙的適合を抑制する方法に関する情報を追加しました
- ジェネリクス(Generics)の暗黙的制約(Implicit Constraints)セクションに、共通のプロトコルへの適合が必要なジェネリック制約に関する情報を追加しました
2025-03-31
- Swift 6.1 に更新しました
- ジェネリクスのための軽量なシンタックスとして
someを使用する情報を含めてOpaque パラメータ型(Opaque Parameter Types) セクションを追加しました - available セクションに、
noasync引数に関する情報を追加しました
2024-09-16
- Swift 6 に更新しました
- 属性のpreconcurrency セクションに、Strict Concurrency チェックへの移行に関する情報を追加しました
- エラーハンドリングのエラーの型の特定 セクションに、特定の型のエラーをスローことについての情報を追加しました
- アクセス制御 の章に package レベルのアクセスに関する情報を追加しました
2024-03-05
- Swift5.10 に更新しました
- ネストされたプロトコルの情報を委譲(Delegation)セクションに追加しました
- UIApplicationMainとNSApplicationMainセクションに非推奨情報を追加しました
2023-12-11
- Swift 5.9.2 に更新しました
- セクションに
borrowingとconsuming修飾子に関する情報を追加しました - 定数と変数(Constants and Variables)に、宣言後の定数の値の設定に関する情報を追加しました
- タスク、タスクグループ、タスクキャンセルに関する情報を並行処理(Concurrency)の章に追加しました
- マクロ(Macros)の章に、既存の Swift パッケージでマクロを実装する方法ついての情報を追加しました
- extension マクロが conformance マクロに置換されたので、付属型マクロ(Attached Macros)のセクションを更新しました
- バックデプロイに関する情報をbackDeployedセクションに追加しました
2023-09-18
- Swift 5.9 に更新しました
- 制御フロー(Control Flow)の章と条件文(Conditional Statements)セクションに、
if式とswitch式に関する情報を追加しました - マクロ(Macros)の章を追加し、コンパイル時にコードを生成することについての情報を追加しました
- Opaque 型とBox 型(Opaque Types and Boxed Types)の章に、Box 型プロトコルに関する情報を追加しました
- Result-Building Methodsのセクションを更新し、
buildPartialBlock(first:)メソッドとbuildPartialBlock(cumulated:next:)メソッドについての情報を追加しました - availableと条件付きコンパイルブロック(Conditional Compilation Block)に visionOS を追加しました
- グループ化に空白行を使用するように公式の grammar を整形しました
2023-03-30
- Swift 5.8 に更新しました
- 遅延アクション(Deferred Actions)を追加し、エラーハンドリングの以外の
deferの使い方を示しました - 全体的な細かい修正と追加
2022-09-12
- Swift 5.7 に更新しました
- アクターとタスク間のデータ送信に関する情報を Sendable Types セクションに追加しました。また、@Sendable 属性と @unchecked 属性に関するセクションを追加しました
- 正規表現の作成に関する情報を 正規表現リテラル セクションに追加しました
if-letの短縮形に関する情報を オプショナルバインディング のセクションに追加しました#unavailableに関する情報を APIアベイラビリティチェック セクションに追加しました
2022-03-14
- Swift 5.6 に更新しました
- 明示的メンバ式(Explicit Member Expression)セクションにメソッドチェーンや他の後置式の周りで
#ifが使えることについての情報を追加しました - 全体的な数字の視覚的スタイリングを更新しました
2021-09-20
- Swift 5.5 に更新しました
- 非同期関数、Task、およびアクターについての情報を並行処理(Concurrency)の章、およびアクター宣言(Actor Declaration)、非同期関数と非同期メソッド(Asynchronous Functions and Methods)、およびAwait 演算子(Await Operator)セクションに追加しました
- 識別子(Identifiers)セクションに、アンダースコアで始まる識別子についての情報を追加しました
2021-04-26
- Swift 5.4 に更新しました
- リザルトビルダ(Result Builders)とresultBuilderセクションに、リザルトビルダについての情報を追加しました
- ポインタ型への暗黙変換(Implicit Conversion to a Pointer Type)セクションに、関数呼び出しの中で in-out パラメータを unsafe pointer に暗黙的に変換する方法についての情報を追加しました
- 可変長パラメータ(Variadic Parameters)と関数宣言(Function Declaration)セクションを更新しました。関数は複数の可変長パラメータを受け取ることができるようになりました
- 暗黙メンバ式(Implicit Member Expression)セクションを更新しました。暗黙メンバ式を繋げて使えるようになりました
2020-09-16
- Swift 5.3 に更新しました
- 末尾クロージャ(Trailing Closures)セクションに、複数の末尾クロージャについての情報を追加し、関数呼び出し式(Function Call Expression)セクションに、複数の末尾クロージャをパラメータに合わせる方法についての情報を追加しました
- デフォルト実装を使用したプロトコル準拠(Adopting a Protocol Using a Synthesized Implementation)セクションに、列挙型が
Comparableプロトコルに準拠するための合成実装についての情報を追加しました - コンテキスト上の where 句(Contextual Where Clauses)セクションに、ジェネリック
where句をより多くの場所に記載できる旨を追加しました - オプショナル値への非所有参照(Unowned Optional References)セクションに、オプショナル値を
unowned参照に使用する方法についての情報を追加しました - mainセクションに
@main属性についての情報を追加しました - リテラル式(Literal Expression)セクションに、
#filePathを追加し、#fileの記載を更新しました - エスケープクロージャ(Escaping Closures)セクションを更新しました。多くのシナリオでクロージャが暗黙的に
selfを参照できるようになりました - do catch を使ったエラー処理(Handling Errors Using Do-Catch)とDo 文(Do Statement)のセクションを更新しました。
catch句が複数のエラーにマッチングできるようになりました Anyの詳細を追加し、Any 型(Any Type)セクションに移動しました- プロパティオブザーバ(Property Observers)セクションを更新しました、
lazyプロパティでもオブザーバが使用できるようになりました - プロトコル宣言(Protocol Declaration)セクションを更新しました。列挙型のメンバがプロトコル要件を満たすことができるようになりました
- 格納変数オブザーバとプロパティオブザーバ(Stored Variable Observers and Property Observers)セクションを更新して、get がいつオブザーバの前に呼び出されるかついて記述しました
- メモリ安全性(Memory Safety)の章を更新して、アトミック操作について記述しました
2020-03-24
- Swift 5.2 に更新しました
- Key-Path 式(Key-Path Expression)セクションに、クロージャの代わりにキーパスを渡すことについての情報を追加しました
- 特別な名前のメソッド(Methods with Special Names)セクションに、関数呼び出し構文にクラス、構造体、および列挙型のインスタンスを使用できるようにする糖衣構文(シンタックスシュガー)についての情報を追加しました
- 様々な subscript(Subscript Options)セクションを更新しました。subscript でデフォルトパラメータを使用できるようになりました
- Self 型(Self Type)セクションを更新しました。より多くのコンテキストで
Selfが使えるようになりました - 暗黙アンラップオプショナル(Implicitly Unwrapped Optionals)セクションを更新して、暗黙アンラップオプショナル値をオプショナルまたは非オプショナルのどちらでも使用できることをより明確にしました
2019-09-10
- Swift 5.1 に更新しました
- Opaque 型(Opaque Types)の章に、戻り値に特定の名前の戻り値の型を提供するのではなく、戻り値が準拠するプロトコルを指定する関数についての情報を追加しました
- プロパティラッパ(Property Wrappers)セクションに、プロパティラッパについての情報を追加しました
- frozenセクションに、ライブラリエボリューションのための frozen な列挙型と構造体についての情報を追加しました
- 暗黙的な戻り値がある関数(Functions With an Implicit Return)と省略 get プロパティ宣言(Shorthand Getter Declaration)セクションに、
returnを省略した関数についての情報を追加しました - 型 subscript(Type Subscripts)セクションに、型への subscript の使用について情報を追加しました
- 列挙型ケースパターン(Enumeration Case Pattern)セクションを更新しました。列挙型ケースとオプショナル値をマッチングできるようになりました
- 構造体のメンバワイズイニシャライザ(Memberwise Initializers for Structure Types)セクションを更新しました。メンバワイズイニシャライザがデフォルト値を持つプロパティのパラメータを省略することができるようになりました
- dynamicMemberLookupセクションに、実行時にキーパスで検索された動的メンバについての情報を追加しました
- 条件付きコンパイルブロック(Conditional Compilation Block)のターゲット環境リストに
macCatalystを追加しました - Self 型(Self Type)セクションを更新しました。
Selfを使用して、現在のクラス、構造体、または列挙型宣言で導入された型を参照することができるようになりました
2019-03-25
- Swift 5.0 に更新しました
- 拡張区切り文字(Extended String Delimiters)セクションを追加し、拡張区切り文字についての情報を文字列リテラル(String Literals)セクションに追加しました
dynamicCallable属性を使用してインスタンスを関数として動的に呼び出すことについての情報を記載したdynamicCallableセクションを追加しましたunknownスイッチケース属性を使用したswitch文の将来の列挙ケースを扱う方法についての情報を記載したunknownと列挙型の将来のケースのスイッチング(Switching Over Future Enumeration Cases)セクションを追加しました- Key-Path 式(Key-Path Expression)セクションに、識別キーパス(
\.self)についての情報を追加しました - 条件付きコンパイルブロック(Conditional Compilation Block)のプラットフォーム条件に(
<)演算子の使用方法についての情報を追加しました
2018-09-17
- Swift 4.2 に更新しました
- 列挙ケースの繰り返し処理(Iterating over Enumeration Cases)セクションに、列挙型の全てのケースへのアクセス方法についての情報を追加しました
- コンパイル時診断文(Compile-Time Diagnostic Statement)セクションに、
#errorと#warningについての情報を追加しました - 宣言属性(Declaration Attributes)セクションの
inlinableとusableFromInline属性に、インライン化についての情報を追加しました - 宣言属性(Declaration Attributes)セクションの
dynamicMemberLookup属性に、実行時に名前で検索するメンバについての情報を追加しました - 宣言属性(Declaration Attributes)セクションに、
require_stored_property_initsおよびwarn_unqualified_access属性についての情報を追加しました - 条件付きコンパイルブロック(Conditional Compilation Block)セクションに、Swift コンパイラのバージョンに応じて、条件付きでコンパイルする方法についての情報を追加しました
- リテラル式(Literal Expression)セクションに、
#dsohandleについての情報を追加しました
2018-03-29
- Swift 4.1 に更新しました
- 等価演算子(Equivalence Operators)セクションに、等価演算子の合成実装についての情報を追加しました
- 宣言(Declarations)の章の拡張宣言(Extension Declaration)セクションと、プロトコル(Protocols)の章の条件付きでのプロトコルへの準拠(Conditionally Conforming to a Protocol)セクションに、条件付きプロトコル準拠についての情報を追加しました
- 関連型の制約へのプロトコルの使用(Using a Protocol in Its Associated Type’s Constraints)セクションに、再帰的プロトコル制約についての情報を追加しました
- 条件付きコンパイルブロック(Conditional Compilation Block)セクションに、
canImport()とtargetEnvironment()プラットフォーム条件についての情報を追加しました
2017-12-04
- Swift 4.0.3 に更新しました
- Key-Path 式(Key-Path Expression)セクションを更新しました。subscript にキーパスを使用できるようになりました
2017-09-19
- Swift 4.0 に更新しました
- メモリ安全性(Memory Safety)の章に、メモリへの排他アクセスについての情報を追加しました
- ジェネリック where 句を使用した関連型(Associated Types with a Generic Where Clause)セクションを追加しました。ジェネリック
where句で関連型を制約できるようになりました - 文字列と文字(Strings and Characters)の章の文字列リテラル(String Literals)セクションと、字句構造(Lexical Structure)の章の文字列リテラル(String Literals)セクションに、複数行文字列リテラルについての情報を追加しました
- 宣言属性(Declaration Attributes)セクションの
objc属性の説明を更新しました。この属性が推論される場所がより少なくなりました - ジェネリック subscript(Generic Subscripts)セクションを追加しました。subscript はジェネリックにできます
- プロトコル(Protocols)の章のプロトコル合成(Protocol Composition)セクションと、型(Types)の章のプロトコル合成型(Protocol Composition Type)セクションの説明を更新しました。プロトコル合成型にスーパークラスの要件を含めることができるようになりました
- 拡張宣言(Extension Declaration)のプロトコル拡張の説明を更新しました。
finalは使用できなくなりました - アサーションと事前条件(Assertions and Preconditions)セクションに、前提条件と致命的エラーについての情報を追加しました
2017-03-27
- Swift 3.1 に更新しました
- ジェネリック where 句を使った拡張(Extensions with a Generic Where Clause)セクションに、要件を含む extension についての情報を追加しました
- For-In ループ(For-In Loops)セクションに範囲全体を繰り返す例を追加しました
- 失敗可能イニシャライザ(Failable Initializers)セクションに、失敗可能な数値変換の例を追加しました
- 宣言属性(Declaration Attributes)セクションに、Swift 言語バージョンを使用した
available属性の使い方についての情報を追加しました - 関数型(Function Type)セクションの説明を更新し、関数型に引数ラベルを書くことができないことを記載しました
- 条件付きコンパイルブロック(Conditional Compilation Block)セクションの Swift 言語バージョン番号の説明を更新しました。オプショナルのパッチ番号が使用できるようになりました
- 関数型(Function Type)セクションの説明を更新し、Swift は、タプル型の単一のパラメータを受け取る関数と、複数のパラメータを受け取る関数が区別できるようになりました
- 式(Expressions)の章から動的型式のセクションを削除しました。
type(of:)は Swift 標準ライブラリ関数になりました
2016-10-27
- Swift 3.0.1 に更新しました
- 自動参照カウント(Automatic Reference Counting)の章の弱参照、非所有参照の説明を更新しました
- 宣言修飾子(Declaration Modifiers)セクションに、
unowned、unowned(safe)とunowned(unsafe)修飾子についての情報を追加しました - Any および AnyObject の型キャスト(Type Casting for Any and AnyObject)セクションに、Any 型の値が期待される場所にオプショナルの値を使用することについての記載を追加しました
- 括弧付き式とタプル式の説明を分けるように、Expressions(式)の章を更新しました
2016-09-13
- Swift 3.0 に更新しました
- 関数(Functions)の章と関数宣言(Function Declaration)セクションの関数の説明を、デフォルトで全てのパラメータが引数ラベルを持つように更新しました
- 高度な演算子(Advanced Operators)の章の演算子の説明を更新しました。これらの演算子をグローバル関数としてはなく型メソッドとして実装できるようになりました
- アクセス制御(Access Control)の章に、
openとfilePrivateアクセスレベル修飾子についての情報を追加しました - 関数宣言(Function Declaration)セクションの
inoutの説明を、パラメータ名の前ではなくパラメータの型の前に使用するように更新しました - エスケープクロージャ(Escaping Closures)と自動クロージャ(AutoClosures)セクションと、属性(Attributes)の章の説明で、
@noescapeおよび@autoclosures属性を宣言属性から型属性へ更新しました - 高度な演算子(Advanced Operators)の章のPrecedence for Custom Infix Operators(カスタム中置演算子の優先順位)セクションと、宣言(Declaration)の章の優先順位グループ宣言(Precedence Group Declaration)セクションに、演算子の優先順位グループについての情報を追加しました
- OS X の変わりに macOS、
ErrorProtocolの代わりにError、StringLiteralConvertibleの代わりにExpressibleByStringLiteralなどのプロトコル名を使用するように説明を更新しました - ジェネリクス(Generics)の章のジェネリック where 句(Generic Where Clauses)セクションと、ジェネリックパラメータと引数(Generic Parameters and Arguments)の章の説明を更新しました。ジェネリック
where句を宣言の最後に書くことができるようになりました - エスケープクロージャ(Escaping Closures)セクションの説明を更新しました。クロージャはデフォルトが非エスケープになりました
- 基本(The Basics)の章のオプショナルバインディング(Optional Binding)セクションと、文(Statement)の章のWhile 文(While Statement)セクションの説明を更新しました。
if、while、guard文は、where句なしで、カンマ区切りリストの条件を使用できるようになりました - 制御フロー(Control Flow)の章のSwitchセクションと、文(Statement)の章のSwitch 文(Switch Statement)セクションに、複数のパターンを持つ列挙ケースについての情報を追加しました
- 関数型(Function Type)セクションの関数型の説明を更新しました。引数ラベルが関数の型の一部ではなくなりました
- プロトコル(Protocols)の章のプロトコル合成(Protocol Composition)セクションと、型(Types)の章のプロトコル合成型(Protocol Composition Type)セクションの説明を更新し、新しい
Protocol1 & Protocol2構文を使用するようになりました - 動的型式セクションで、新しい
type(of:)を使用するように説明を更新しました - 行制御文(Line Control Statement)セクションで、
#sourceLocation(file:line:)構文を使用するように、行制御文の説明を更新しました - ノーリターン関数(Functions that Never Return)の説明を更新し、新しい
Never型を使用するようにしました - リテラル式(Literal Expression)セクションに、playground リテラルについての情報を追加しました
- In-Out パラメータ(In-Out Parameters)セクションの説明を更新し、非エスケープクロージャのみが in-out パラメータをキャプチャできることを記載しました
- デフォルトパラメータ値(Default Parameter Values)セクションのデフォルトパラメータの説明を更新しました。関数呼び出し時にデフォルトパラメータを並べ替えることができなくなりました
- 属性(Attributes)の章でコロンを使用するように属性引数を更新しました
- 再スロー関数と再スローメソッド(Rethrowing Functions and Methods)セクションに、再スロー関数のキャッチブロック内でエラーをスローすることについての情報を追加しました
- Selector 式(Selector Expression)セクションに、Objective-C プロパティの get または set のセレクタへのアクセスについての情報を追加しました
- タイプエイリアス宣言(Type Alias Declaration)セクションに、ジェネリックなタイプエイリアスとプロトコル内でのタイプエイリアスの使用について情報を追加しました
- 関数型(Function Type)セクションの説明を更新し、パラメータ型の周囲に括弧が必須だということを記載しました
- 属性(Attributes)の章を更新して、
@IBAction、@IBOutlet、および@NSManaged属性は@objc属性を暗黙的に含んでいることを記載しました - 宣言属性(Declaration Attributes)セクションに、
@GKInspectable属性についての情報を追加しました - オプショナルのプロトコル要件(Optional Protocol Requirements)のオプショナルのプロトコル要件の説明を更新し、Objective-C と相互運用されるコードでのみ使用できることを明確にしました
- 関数宣言(Function Declaration)セクションから、関数パラメータを使用して明示的に
letを使用することの説明を削除しました - 文(Statement)の章から
Booleanプロトコルの説明を削除しました。このプロトコルは Swift 標準ライブラリから削除されました - 宣言属性(Declaration Attributes)セクションの
@NSApplicationMain属性の説明を修正しました
2016-03-21
- Swift 2.2 に更新しました
- 条件付きコンパイルブロック(Conditional Compilation Block)セクションに、Swift バージョンに応じて、コードをコンパイルする方法についての情報を追加しました
- 明示的メンバ式(Explicit Member Expression)セクションに、引数名だけが異なるメソッドまたはイニシャライザを区別する方法についての情報を追加しました
- Selector 式(Selector Expression)セクションに、Objective-C セレクタの
#Selector構文についての情報を追加しました - 関連型(Associated Types)とプロトコル関連型宣言(Protocol Associated Type Declaration)セクションの、
associatedtypeキーワードを使った関連型の説明を更新しました - 失敗可能イニシャライザ(Failable Initializers)セクションの、インスタンスが完全に初期化される前に
nilを返すイニシャライザについての情報を更新しました - Comparison Operators(比較演算子)セクションに、タプルの比較についての情報を追加しました
- Keywords and Punctuation(単語と句読点)セクションに、外部パラメータ名にキーワードを使用する方法についての情報を追加しました
- 宣言属性(Declaration Attributes)セクションの
@objc属性の説明を更新し、列挙型と列挙ケースでもこの属性を使用できることを記載しました - 演算子(Operators)セクションの、ドットを含むカスタム演算子の説明を更新しました
- 再スロー関数と再スローメソッド(Rethrowing Functions and Methods)セクションに、再スロー関数が直接エラーをスローできないことを記載した記載を追加しました
- プロパティオブザーバ(Property Observers)セクションに、in-out パラメータとしてプロパティを渡した際に呼ばれるプロパティオブサーバについての記載を追加しました
- Swift ツアー(A Swift Tour)の章に、エラー処理についてのセクションを追加しました
- 弱参照(Weak References)セクションに、メモリ割り当て解除プロセスをより明確に表示するために図を更新しました
- C 言語スタイルの
forループ、++前置および後置演算子、--前置および後置演算子の説明を削除しました - 可変関数引数とカリー関数の特別な構文の説明を削除しました
2015-10-20
- Swift 2.1 に更新しました
- 文字列補間(String Interpolation)と文字列リテラル(String Literals)セクションを更新しました。文字列補間に文字列リテラルを含めることができるようになりました
- エスケープクロージャ(Escaping Closures)セクションに、
@noescape属性についての情報を追加しました - 宣言属性(Declaration Attributes)セクションと条件付きコンパイルブロック(Conditional Compilation Block)セクションの、tvOS についての情報を更新しました
- In-Out パラメータ(In-Out Parameters)セクションに、in-out パラメータの動作についての情報を追加しました
- キャプチャリスト(Capture Lists)セクションに、キャプチャリストで指定された値がキャプチャされる方法についての情報を追加しました
- オプショナルチェーンを通したプロパティへのアクセス(Accessing Properties Through Optional Chaining)セクションを更新し、オプショナルチェーンを介して代入する方法が明確になるようにしました
- 自動クロージャ(AutoClosures)セクションの autoclosure の説明を改善しました
- Swift ツアー(A Swift Tour)の章の
??演算子を使用する例を追加しました
2015-09-16
- Swift 2.0 に更新しました
- Error Handling(エラーハンドリング)の章、Do 文(Do Statement)セクション、Throw 文(Throw Statement)セクション、Defer 文(Defer Statement)セクション、およびTry 演算子(Try Operator)セクションに、エラー処理についての情報を追加しました
- エラーの表現とスロー(Representing and Throwing Errors)セクションを更新しました。全ての型が
ErrorTypeプロトコルに準拠するようになりました - エラーからオプショナル値への変換(Converting Errors to Optional Values)セクションに、新しい
try?キーワードについての情報を追加しました - 列挙型(Enumerations)の章の再帰的列挙型(Recursive Enumerations)セクションと、宣言(Declarations)の章の任意の型のケースを持つ列挙型(Enumerations with Cases of Any Type)セクションに、再帰的な列挙型の情報を追加しました
- 制御フロー(Control Flow)の章のAPI アベイラビリティチェック(Checking API Availability)セクションと、文(Statements)の章のAvailability Condition(アベイラビリティ条件)セクションに、API アベイラビリティチェックについての情報を追加しました
- 制御フロー(Control Flow)の章のEarly Exit(早期リターン)と、文(Statements)の章のGuard 文(Guard Statement)セクションに、新しい
guard文についての情報を追加しました - プロトコル(Protocols)の章のプロトコル Extension(Protocol Extensions)についての情報を追加しました
- アクセス制御(Access Control)の章の単体テストターゲットのアクセスレベル(Access Levels for Unit Test Targets)セクションに、単体テストでのアクセス制御についての情報を追加しました
- パターン(Patterns)の章のオプショナルパターン(Optional Pattern)セクションに、新しいオプショナルパターンについての情報を追加しました
- Repeat-Whileセクションを更新し、
repeat-whileループについての情報を追加しました - 文字列と文字(Strings and Characters)の章を更新しました。
Stringは Swift 標準ライブラリのCollectionTypeプロトコルに準拠しなくなりました - 定数と変数の出力(Printing Constants and Variables)セクションに、新しい Swift 標準ライブラリの
print(_:separator:terminator)関数についての情報を追加しました - 列挙型(Enumerations)の章の暗黙的に割り当てられた Raw Value(Implicitly Assigned Raw Values)セクションと、宣言(Declarations)の章のRaw Value 型のケースを持つ列挙型(Enumerations with Cases of a Raw-Value Type)セクションに、
String型の Raw Value を持つ列挙ケースの動作についての情報を追加しました - 自動クロージャ(AutoClosures)セクションに、
@autoclosure属性または@autoclosure(escaping)についての情報を追加しました - 宣言属性(Declaration Attributes)セクションを更新し、
@availableおよび@warn_unused_result属性についての情報を追加しました - Type Attributes(型属性)セクションを更新し、
@convention属性についての情報を追加しました - オプショナルバインディング(Optional Binding)セクションに、
where句を使用して複数のオプショナルバインディングを使用する例を追加しました - 文字列リテラル(String Literals)セクションに、
+演算子を使用して文字列リテラルを連結する際のコンパイル時の動作についての情報を追加しました - Metatype 型(Metatype Type)セクションに、イニシャライザ式を使用してインスタンスを構築する際の Metatype の比較についての情報を追加しました
- Debugging with Assertions(アサーションを使ったデバッグ)セクションに、ユーザ定義のアサーションが無効になる場合についての記載を追加しました
- 宣言属性(Declaration Attributes)セクションの
@NSManaged属性の説明を更新しました。属性を特定のインスタンスメソッドに適用できるようになりました - Variadic Parameters(可変長パラメータ)セクションを更新しました。可変長パラメータは、関数のパラメータリスト内の任意の位置で宣言できるようになりました
- Overriding a Failable Initializer(失敗可能イニシャライザのオーバーライド)セクションに、スーパークラスのイニシャライザの結果を強制アンラップすることで、失敗しないイニシャライザから失敗可能イニシャライザに委譲できることについての情報を追加しました
- 任意の型のケースを持つ列挙型(Enumerations with Cases of Any Type)セクションに、関数を列挙ケースとして使用できることについての情報を追加しました
- Initializer Expression(イニシャライザ式)セクションに、イニシャライザを明示的に参照する方法についての情報を追加しました
- コンパイラ制御文(Compiler Control Statements)セクションに、ビルド構成および行制御文についての情報を追加しました
- Metatype 型(Metatype Type)セクションに、Metatype の値からクラスインスタンスを構築する方法についての記載を追加しました
- 弱参照(Weak References)セクションに、弱参照がキャッシュに適していないことについての記載を追加しました
- 型プロパティ(Type Properties)セクションの記載を更新し、格納型プロパティが遅延初期化されることを記載しました
- 値のキャプチャ(Capturing Values)セクションを更新し、変数と定数がクロージャ内でキャプチャされる方法を明確にしました
- 宣言属性(Declaration Attributes)セクションを更新し、クラスに
@objc属性を適用できる場合についての説明を追加しました - エラー処理(Handling Errors)セクションに、
throw文を実行する際のパフォーマンスについての記載を追加しました。Do 文(Do Statement)のセクションのdo文にも同様の情報を追加しました - 型プロパティ(Type Properties)セクションの、クラス、構造体、および列挙型の格納型プロパティおよび計算型プロパティについての情報を更新しました
- Break Statement(Break 文)セクションの、ラベル付き break 文についての情報を更新しました
willSetとdidSetオブザーバの動作を明確にするために、プロパティオブザーバ(Property Observers)セクションの記載を更新しました- アクセスレベル(Access Levels)セクションに、
privateアクセスの範囲についての記載を追加しました - 弱参照(Weak References)セクションに、ガベージコレクションと ARC の弱参照の違いについての記載を追加しました
- 文字列内の特殊文字(Special Characters in String Literals)セクションの Unicode スカラの定義をより正確なものに更新しました
2015-04-08
- Swift 1.2 に更新しました
- Swift ネイティブの
Setコレクション型ができました。詳細については、Sets(セット)を参照ください @autoclosureは、型ではなく、パラメータ宣言の属性になりました。新しい@noescapeパラメータ属性もあります。詳細については、宣言属性(Declaration Attributes)を参照ください- 型メソッドと型プロパティは、宣言修飾子の
staticキーワードを使用できるようになりました。詳細については、型変数プロパティ(Type Variable Properties)を参照ください - Swift に
as?とas!の失敗可能ダウンキャスト演算子が追加されました。詳細については、プロトコル準拠チェック(Checking for Protocol Conformance)を参照ください - 文字列インデックス(文字列のインデックス(String Indices))について新しいガイドセクションを追加しました
- Overflow Operators(オーバーフロー演算子)からオーバーフロー分割演算子(
&/)とオーバーフロー剰余演算子(&%)を削除しました - 定数および定数プロパティ宣言と初期化のルールを更新しました。詳細については、定数宣言(Constant Declaration)を参照ください
- 文字列リテラル内の Unicode スカラの定義を更新しました。文字列内の特殊文字(Special Characters in String Literals)を参照ください
- 範囲演算子(Range Operators)を更新し、開始と終了インデックスが同じ半開範囲は空になることを記載しました
- クロージャは参照型(Closures Are Reference Types)を更新し、変数のキャプチャルールを明確にしました
- 値のオーバーフロー(Value Overflow)を更新し、符号付き整数と符号なし整数のオーバーフローの動作を明確にしました
- プロトコル宣言(Protocol Declaration)を更新し、プロトコル宣言の範囲とメンバを明確にしました
- キャプチャリストの定義(Defining a Capture List)を更新し、クロージャのキャプチャリストでの weak や unowned 参照の構文を明確にしました
- 演算子(Operators)セクションを更新し、数学演算子、その他のシンボル、および Dingbats Unicode ブロックなど、カスタム演算子がサポートしている文字の例を明示的に説明しました
- 定数は、ローカル関数スコープで初期化せずに宣言できるようになりました。最初に使用する前に値の設定が必要です。詳細については、定数宣言(Constant Declaration)を参照ください
- イニシャライザ内で、定数プロパティは値を一度だけ割り当てることができるようになりました。詳細については、初期化中の定数プロパティの割り当て(Assigning Constant Properties During Initialization)を参照ください
- 複数のオプショナルバインディングは、代入式のカンマ区切りのリストとして、単一の
if文で使用できるようになりました。詳しくは、オプショナルバインディング(Optional Binding)を参照ください - オプショナルチェーン式(Optional-Chaining Expression)は、後置式として使用しなければなりません
- プロトコルのキャストは、
@objcプロトコルに制限されなくなりました - 実行時に型キャストに失敗する可能性がある型は、
as?またはas!演算子を使用し、失敗しないことが保証されている型キャストは、as演算子を使用します。詳細については、型キャスト演算子(Type-Casting Operators)を参照ください
2014-10-16
- Swift 1.1 に更新しました
- 失敗可能イニシャライザ(失敗可能イニシャライザ(Failable Initializers))の全ガイドを追加しました
- プロトコルの失敗可能イニシャライザ要件(失敗可能イニシャライザ要件(Failable Initializer Requirements))の説明を追加しました
Any型の定数と変数に関数インスタンスを含めることができるようになりました。switch文内での関数型のチェックとキャスト方法を示すために、Any および AnyObject の型キャスト(Type Casting for Any and AnyObject)の例を更新しました- Raw Value を持つ列挙型は、
toRaw()メソッドではなくrawValueプロパティ、fromRaw()メソッドではなくrawValueパラメータを持つ失敗可能イニシャライザを持つようになりました。 詳しくは、Raw ValuesとRaw Value 型のケースを持つ列挙型(Enumerations with Cases of a Raw-Value Type)を参照ください - 初期化の失敗を引き起こす失敗可能イニシャライザ(失敗可能イニシャライザ(Failable Initializers))についての新しいセクションを追加しました
- カスタム演算子に
?を含めることができるようになりました。演算子(Operators)を更新し、改訂されたルールを記載しました。カスタム演算子(Custom Operators)から有効な演算子文字セットの説明の重複を削除しました
2014-08-18
- iOS と OS X アプリを構築するための Apple の新しいプログラミング言語 Swift 1.0 についての新しい文書
- プロトコル内のイニシャライザ要件(Initializer Requirements)についての新しいセクションを追加しました
- クラス専用プロトコル(Class-Only Protocols)についての新しいセクションを追加しました
- アサーションと事前条件(Assertions and Preconditions)は、文字列補間を使用できるようになりました。使用できない記載を削除しました
- 文字と文字列の連結(Concatenating Strings and Characters)セクションを更新し、
StringとCharacterを加算演算子(+)または加算代入演算子(+=)で組み合わせることができないことを反映しました。これらの演算子はStringでのみ使用されます。Stringの末尾に単一のCharacterを追加するには、String型のappend(_:)メソッドを使用します - 宣言属性(Declaration Attributes)セクションに、
availability属性についての情報を追加しました - オプショナル(Optionals)は、オプショナルの
Bool値を使用しているときに、混乱を避けるために、値がある場合にtrue、ない場合にfalseと評価されません。代わりに、==または!=演算子を指定して、オプショナルに値が含まれているかどうか、明示的なnilチェックを行いましょう - nil 合体演算子(Nil-Coalescing Operator)(
a ?? b)ができました。これは、オプショナルの値が存在する場合はオプショナルの値をアンラップし、nilの場合はデフォルト値を返します - 文字列の比較(Comparing Strings)セクションを更新、拡張し、文字列と文字の比較や、前方比較、後方比較は、拡張書記素クラスタの Unicode の正規等価性に基づいていることを反映し、例を示しました
- オプショナルチェーン(Optional Chaining)を使って、mutating メソッドや演算子の呼び出し、subscript への値の割り当て、プロパティ値の設定を試すことができます。オプショナルチェーンを通したプロパティへのアクセス(Accessing Properties Through Optional Chaining)の情報は、これに応じて更新され、オプショナルチェーンを通したメソッドの呼び出し(Calling Methods Through Optional Chaining)のメソッド呼び出しが成功したかどうかの例では、プロパティの設定が成功したかどうかをチェックする方法も例として示すように拡張しました
- オプショナルチェーンを通じて、オプショナルの subscript にアクセスするための新しいセクション(オプショナル型の subscript へのアクセス(Accessing Subscripts of Optional Type))を追加しました
- Array 配列へのアクセスと変更(Accessing and Modifying an Array)を更新し、
+=演算子を使って配列にその単一の要素を追加できなくなりました。代わりに、append(_:)メソッドを使用するか、単一の要素を持つ配列に+=演算子を使用して追加します - 範囲演算子(範囲演算子(Range Operators))
a...bとa..<bの開始値aを、終了値bより大きくしてはならないことを記載しました - 継承(Inheritance)の章を書き直して、イニシャライザのオーバーライドの紹介部分を削除しました。この章では、サブクラス内に新しい機能を追加し、オーバーライドを使用して既存の機能を変更することに焦点を当てています。プロパティの get プロパティ、set プロパティドのオーバーライド(Overriding Property Getters and Setters)の章の例は、
descriptionプロパティをオーバーライドする方法を示すために書き換えられました。(サブクラスのイニシャライザで継承したプロパティのデフォルト値を変更する例は、イニシャライザ(Initialization)の章に移動しました) - イニシャライザの継承とオーバーライド(Initializer Inheritance and Overriding)セクションを更新し、指定イニシャライザのオーバーライドを
override修飾子でマークする必要があることを記載しました - 必須イニシャライザ(Required Initializers)セクションを更新し、
required修飾子が全てのサブクラスの必須イニシャライザの実装の前に書かれ、自動的に継承したイニシャライザが必須イニシャライザの要件を満たすことができることを記載しました - 中置演算子メソッド(演算子メソッド(Operator Methods))に
@infix属性が必要なくなりました - 前置、後置演算子(Prefix and Postfix Operators)の
@prefixおよび@postfix演算子属性は、prefixおよびpostfix宣言修飾子に置き換えられました - 前置、後置演算子(Prefix and Postfix Operators)が同じオペランドに適用されたときに
prefixとpostfix演算子が適用される順序についての記載を追加しました - 複合代入演算子(Compound Assignment Operators)の演算子関数は、関数を定義するときに
@assignment属性を使用しなくなりました - カスタム演算子(Custom Operators)を定義するときに修飾子を指定する順序が変更されました。例えば、
operator prefixではなくprefix operatorと書くようになりました - 宣言修飾子(Declaration Modifiers)に、
dynamic修飾子についての情報を追加しました - 型推論がリテラル(Literals)で動作する方法についての情報を追加しました
- カリー関数のより詳しい情報を追加しました
- アクセス制御(Access Control)についての新しい章を追加しました
- 文字列と文字(Strings and Characters)の章を更新し、Swift の
Character型が単一の Unicode 拡張書記素クラスタを表すことを反映しました。拡張書記素クラスタ(Extended Grapheme Clusters)上の新しいセクションと、Unicode Scalar Values(Unicode スカラ値)と文字列の比較(Comparing Strings)についての詳しい情報も含まれています - 文字列リテラル(String Literals)セクションを更新し、文字列内の Unicode スカラを
\u{n}(n には 0 から 10FFFF の間の 16 進数が入る)で書けることを記載しました NSStringのlengthプロパティは、utf16countではなく、Swift のネイティブのString型のutf16countにマッピングされるようになりました- Swift のネイティブ
String型は、uppercaseStringまたはlowercaseStringプロパティを使用しなくなりました。文字列と文字(Strings and Characters)の対応するセクションは削除され、様々なコード例を更新しました - 引数ラベルのないイニシャライザパラメータ(Initializer Parameters Without Argument Labels)についての新しいセクションを追加しました
- 必須イニシャライザ(Required Initializers)についての新しいセクションを追加しました
- オプショナルのタプルの戻り値の型(Optional Tuple Return Types)についての新しいセクションを追加しました
- 型注釈(Type Annotations)セクションを更新し、1 つの型注釈を持つ単一の行に複数の関連変数を定義できることを記載しました
@optional、@lazy、@finalと@required属性は、optional、lazy、finalとrequired宣言修飾子(宣言修飾子(Declaration Modifiers))になりました- 本全体を参照して、
..<を(「半閉鎖範囲演算子」ではなく)半開範囲演算子(Half-Open Range Operator)として参照するように更新しました - 辞書へのアクセスと変更(Accessing and Modifying a Dictionary)を更新し、
Dictionaryがブール値のisEmptyプロパティを持つことを記載しました - カスタム演算子(Custom Operators)を定義するときに使用できる文字の全リストを明確にしました
nilとブール値trueとfalseはリテラル(Literals)になりました- Swift の
Array型は、完全に値型のセマンティクスになりました。コレクションの可変性(Mutability of Collections)と配列(Arrays)を更新し、新しいアプローチを反映しました - 配列型の省略構文(Array Type Shorthand Syntax)は
SomeType[]ではなく[SomeType]として書くようになりました - 辞書型の省略構文(Dictionary Type Shorthand Syntax)は、
[KeyType: ValueType]と書くように新しいセクションを追加しました - セット型のハッシュ値(Hash Values for Set Types)についての新しいセクションを追加しました
- クロージャ式(Closure Expressions)の例に、グローバルの
sort(_:_:)関数ではなくグローバルのsorted(_:_:)関数を使用し、配列の新しい値型のセマンティクスを反映しています - 構造体のメンバワイズイニシャライザ(Memberwise Initializers for Structure Types)についての情報を更新し、構造体の格納プロパティにデフォルト値がない場合でもメンバワイズイニシャライザが使用可能だということを明確にしました
- 半開範囲演算子(Half-Open Range Operator)に
..ではなく..<を使用するようになりました - ジェネリック型の拡張(Extending a Generic Type)の例を追加しました