Swift基本講座

レイジー・プロパティを宣言する

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
必要になるまで初期化を行わない、レイジー・プロパティを導入する方法を紹介します。複雑で重い処理が必要な関数を呼び出して初期化を行っているプロパティがクラスの中にある場合、それを軽量化することができます。
講師:
03:45

字幕

このレッスンでは レイジー・プロパティと呼ばれる 新しい種類のプロパティを 用意してみたいと思います まずこちらのプログラムをご覧ください Player クラスの中に name life bonus の― 3つの変数が定義されています クラスの変数は必ず初期化されなければ いけない という特徴を持っていますので それぞれ文字列と整数値と getBonus 関数を呼び出した戻り値で― 初期化されています ですのでこの Player を作った所で name life bonus すべて― 値が入っている ということが確認できます ですがここで考えていただきたいのが getBonus というこのメソッド これがいつ呼ばれるのかということです ここでは bonus が初期化される時に 呼ばれているのですが 実際問題としてこの bonus が 必要になるのはいつかといいますと addLife メソッドが呼び出された時です addLife が呼び出された時に 初めてこの life に bonus の ポイントを足しますよ と― いうことがでてきますので 実は getBonus はこの addLife で 呼び出されない限り必要ないわけです ですので Player にまだ addLife を 呼び出されていないにも関わらず この getBonus で呼び出されてしまっている というのは 少し無駄な処理が含まれている可能性がある と言えます 特にこの getBonus というメソッド 今は乱数を1から10まで 計算して入れるというだけの 非常に簡単な処理をしていますが ここでもの凄く複雑な計算が行われて 例えば1秒とか2秒とか かかるぐらいに 複雑な計算が行われた時には ちょっと Player を作成しただけで この getBonus が呼び出されるのは 勿体ないのではないか と思うわけです そこで登場するのが レイジー・プロパティという考え方です レイジー・プロパティを導入するのは 非常に簡単で この var bonus と 書いてある所の先頭に lazy (レイジー)というキーワードを 追加するだけです 今見ていただきますと Player () で Player のインスタンスを 作っているところで bonus に2が代入されなくなりました bonus が表示されていた所に その代わりに nil と表示されて bonus という名前すら 表示されていません これは Player にとっては 最初の段階では bonus が必要ないので 今はとりあえずこの getBonus の 呼び出しも控えて 変数を呼び出すこともセットすることも 控えておこうということで まだこの bonus を使わない状態に なっているということです これに対してPlayer に addLife の メソッドを呼び出しましょうと― いって呼び出したときには この addLife の中で bonus という このプロパティが必要になりますから その時点で初めてこの bonus が計算されます ここでは Some 2 というふうに書いてますが これが bonus のことです 後で計算されたので {}付きで表示されていますが bonus がようやく addLife の メソッドが呼び出されて― 必要になった時点で計算されて 2が計算されました と この時点で元々の life の 10に5がプラスされて 更にこの乱数の2がプラスされたということで life は17になっていることが確認できます このようにレイジー・プロパティを 導入することによって もの凄く複雑な計算が’必要になる 初期化を行っている変数を 少し軽くするということが できるようになります このレッスンではレイジー・プロパティ について説明しました

Swift基本講座

このコースでは、iOSやOS X用のアプリをとても簡単に開発することができるプログラミング言語Swiftについて解説します。if文やfor文などの制御命令の使い方から変数や定数、配列や辞書の使い方まで基本的なSwiftプログラミングの知識をPlayground上で説明します。Swiftプログラミングの知識を効率的に学ぶのに、このコースをぜひお役立てください。

2時間59分 (35 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2015年09月23日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。