今回も引き続き The Basics の オプショナル
について読み進めていきます。これまでは概念的な観点での基本や Objective-C 言語との違いについてを見てきたので、今回はその具体的なところの基礎を確認していきます。日常的に Swift を使っている人は オプショナル
に既に親しむ機会も多いと思いますけれど、Swift を支える根幹にある機能のひとつで言語による支援が多い機能なのと、親しむほどに使い方に個々の癖が出てくることもあったりすると思うので、少し初心に戻る気持ちで オプショナル の初歩に触れる機会にしてみると良いことあるかもしれないです。よろしくお願いしますね。
——————————————————————————————————————— 熊谷さんのやさしい Swift 勉強会 #138
00:00 開始 00:08 今回は北海道、札幌からの開催 00:56 オリエンテーション 01:22 勉強会の目的 02:22 勉強会の方向性 02:52 お気軽に話しかけてもらうための心持ち 03:39 オプショナルについての前回のおさらい 04:26 無効な値にオプショナルで対処する例 05:16 失敗可能イニシャライザー 06:40 先ほどの例を Playground で実際に見てみる 07:27 失敗可能イニシャライザーはオプショナルで返す 08:06 エラー処理の匙加減 09:51 エラーハンドリングをオプショナルに変換 10:30 標準でエラーハンドリングを使うイニシャライザーはある? 12:21 エラーハンドリングを用いる場合の判断基準 13:56 イニシャライザーが受け取ったクロージャーがエラーを想定しているとき 14:29 イニシャライザーとエラーハンドリングの組み合わせは少ない様子 15:14 Swift におけるエラーの分類 17:35 オプショナルとエラーハンドリングの併用 18:28 イニシャライザーで初期化は失敗してもエラーではない? 19:53 関数が nil を返しても失敗とは限らない 22:34 文字列を整数に変換できないときはエラー扱い? 24:07 エラーとリカバリー性 24:44 fatalError では defer は発動しない 26:32 テストによって不備が摘み取られる論理エラー 27:14 precondition と未定義動作 30:28 設計者の意図により採用するエラーの種類は異なる 32:30 添字アクセスを論理エラーとするか単一ドメインエラーとするか 33:22 配列の有効なインデックス範囲 34:50 なぜ、論理エラーとして分類しているのかという観点 36:09 無チェック最適化をかけたときの添字アクセス 38:11 preconditionFailure が Never を返す? 39:49 クロージングと次回の展望 40:29 Never の気になるロスタイム ———————————————————————————————————————