今まで地道に、“The Swift Programming Language” の勉強記録の記事を書いてきました。Language Guide というチャプターを読み終わり、言語の基本的なことが分かる章は全て網羅したので、目次代わりに残しておきます。
Language Guide
1. 基本事項
- Basic Concept
-
- 型セーフ
-
- 予約語の変数/コンスタントとしての利用
-
- 変数/コンスタントの展開
-
- コメントのネスト
-
- セミコロン
-
- 浮動小数点数のデフォルトは Double
-
- 数字リテラル
-
- 型変換
-
- Int は、条件として使えない
-
- Tuples, Optionals, Assertions
-
- Tuples
-
- Optionals
-
- Optional Binding
-
- nil について
-
- Implicitly unwrapped optionals
-
- Assertions
-
2. 基本オペレーター
- Basic Operators
-
- 代入オペレーター(=)の返り値
-
- Remainder
-
- === と !==
-
- 範囲オペレーター
-
3. 文字列と文字
- Strings and Characters
-
- String は value (値)
-
- Character type
-
- 文字列の長さ
-
- 文字列比較 (hasPrefix / hasSuffix)
-
4. コレクションタイプ
- Array
-
- Swing Array
-
- Array 型 のシンタックス
-
- Array の要素数
-
- Array が空かのチェック
-
- 要素の追加
-
- 要素の削除
-
- 要素の範囲選択
-
- index と一緒に iteration
-
- Array の init, reset, default value
-
- Array の結合
-
- Dictionary
-
- Swing Dictionary
-
- Dictionary の宣言
-
- Dictionary の要素数
-
- Dictionary の修正/追加
-
- Dictionary 要素の削除
-
- Dictionary の iteration
-
- Dicitionary の init, reset
-
- Collection の Mutability
-
5. 条件分岐
- Control Flow
-
- for-in での _ (underscore)
-
- switch 文
-
- Labeled statement
-
6. 関数
- Return Value, External Parameter Name, Default Value
-
- 複数の返り値
-
- External Parameter Name
-
- External Parameter Name の省略した書き方
-
- 引数のデフォルト値
-
- External Parameter Name とデフォルト値
-
- Variadic Function, Parameters, inout, Function Type, Nested Function
-
- 可変引数(variadic)の関数の定義の仕方
-
- 変数引数とコンスタンス引数
-
- inout
-
- Function Type
-
- 関数のネスト
-
7. クロージャ
- Closures
-
- Closure とは
-
- 基本的な Closure
-
- Closure の型推論
-
- Closure 内での return 文の省略
-
- 引数名の省略
-
- Operator Functions
-
- Trailing Closures
-
- 配列の map 関数の Trailing Closure の例
-
- Capturing Values
-
- Closure は参照
-
8. Enumerations
- Enumerations
-
- Enumeration Syntax
-
- Enumeration と Switch 文
-
- 関連ある値 (Associated Values)
-
- Raw Values
-
9. クラスと構造体
- General Concept
-
- クラスと構造体の比較
-
- 基本シンタックス
-
- リファレンスとコピー
-
- Array/Dictionary
-
- Dictionaryの代入とコピー
-
- 配列の代入とコピー
-
10. プロパティ
- Stored Properties & Computed Properties
-
- Stored Properties
-
- Lazy Stored Properties
-
- Computed Properties
-
- Computed Properties のセッター/ゲッター
-
- Observers & Type Properties
-
- Property Observers
-
- Type Properties
-
11. メソッド
- Methods
-
- Instance Methods
-
- 構造体と Enumeration の Instance Methods
-
- Type Methods
-
12. サブスクリプト
- Subscripts
-
- Subscripts Syntax
-
- More Subscripts
-
13. 継承
- Inheritance
-
- ベースクラス
-
- サブクラス
-
- オーバーライド
-
- オーバーライドの防止
-
14. 初期化
- Initialization
-
- 初期値の設定
-
- カスタム Initializer
-
- Default Initializers
-
- 構造体・Enumeration の Initializer delegation
-
- Initialization of Class
-
- クラスの継承と Initializer
-
- クラスの二段階初期化
-
- 初期化処理の継承
-
- Designated and Convenience Initializers のシンタックス
-
- クロージャー・関数でのデフォルトプロパティ値の設定
-
15. Deinitialization
- Deinitialization
-
- Deinitialization
-
16. Automatic Reference Counting
- Automatic Reference Counting
-
- ARC 概要
-
- Strong Reference Cycles
-
- Strong Reference Cycles
-
- Strong Reference Cycles の解消 - Weak 参照
-
- Strong Reference Cycles の解消 - Unowned 参照
-
- Strong Reference Cycles の解消 - Unowned 参照 と Implicitly Unwrapped Optional
-
- Strong Reference Cycles の解消 - Closures
-
17. Optional Chaining
- Optional Chaining
-
- Optional Chaining と Forced Unwrapping (!)
-
- 複雑なモデルクラスの Optional Chaining
-
18. タイプキャスト
- Type Casting
-
- 準備編
-
- タイプチェック
-
- Downcasting
-
- Any と AnyObject
-
19. ネストタイプ
- Nested Types
-
- Nested Types の例
-
20. 拡張
- Extensions
-
- Extensions Syntax
-
- Computed プロパティ
-
- Initializer
-
- メソッド
-
- Subscripts
-
- Nested Types
-
21. プロトコル
- 基本編
-
- Protocol Sytax
-
- プロパティの要求
-
- メソッドの要求
-
- Mutating メソッドの要求
-
- Delegation, Extension
-
- タイプとしてのプロトコル
-
- Delegation
-
- Extension による プロトコル準拠
-
- Collection, Inheritance, Composition, Casting, Optional
-
- Collection とプロトコル
-
- プロトコルの継承
-
- プロトコル結合 (Composition)
-
- プロトコルに準拠しているか確認
-
- 選択的プロトコル要件
-
22. Generics
- Generics
-
- Generics が解決する問題
-
- Generic 関数
-
- Generic タイプ
-
- タイプ制限
-
- Associated タイプ
-
- where ブロック
-
23. 発展オペレーター
- Advanced Operators
-
- ビット操作オペレーター
-
- オーバーフローオペレーター
-
- オペレーター関数
-
- カスタムオペレーター
-