最近から 自動で強制アンラップされるオプショナル
について眺めてみてますけれど、そんな前回に話題にのぼった「初期化を遅らせる」ための方法の話。話題の中心であるオプショナルの他にも、挙げてもらった lazy
と クロージャー
を併用する方法とか、他にもいくつかありそうな気がして、それぞれに特色があったりしそう。そんな辺りを眺めてみるのも良さそうなので、今回はそこから始めていってみることにしますね。
今回もゆめみ社外に向けた参加者公募がされまして、ゆめみの外の人も幾名か来てくださっての開催になります。
—————————————————————————————————————— 熊谷さんのやさしい Swift 勉強会 #175
00:00 開始 00:32 今回の展望 01:23 初期化を遅らせる可能性のある場面 03:04 @IBOutlet に見る遅延初期化 04:43 デリゲート利用時に見る遅延初期化 07:37 初期化フェーズで self を他のプロパティーに設定できる理由 08:29 初期化を遅らせる方法は、他に何があるだろう 09:06 lazy var とクロージャーを併用するのは? 09:59 クロージャー内の self が評価されるタイミングは? 13:04 lazy var は初期化のタイミングと呼出回数に注意 14:27 lazy var とクロージャーの併用は妥当? 15:39 このサンプルコードが論理的に間違っている様子 19:18 明示アンラップと暗黙アンラップとでの主張の違い 19:57 プログラマーが実行順序を制御できることが重要 25:47 lazy var はスレッドセーフ? 26:58 lazy var を気軽には使いづらい 27:15 lazy var の中で self は使える様子 28:43 Objective-C クラスでは self が定義されている 29:14 構造体は再帰的に保持できない 31:22 lazy var でも didSet の併用が可能に 32:06 lazy var における初期値の評価タイミング 33:57 以前はもっと複雑な動きを見せていた気がする 35:42 lazy var って使ってる? 36:54 タイミングを図れる限りは lazy var は避けるのをオススメ 38:24 lazy var での値の反映が遅れる場面 39:53 今回のまとめ 41:44 クロージング ——————————————————————————————————————