生存確認の判定結果を得る方法の色々
よく使われるものに生存判定があります。
これは、都度計算するのではなく、結果がもらえるように準備しておいて、外部から呼び出すのがいい作りになります。
そのために、メソッドやプロパティを別途用意しておいて、使いたい時にアクセスする方法がよく用いられます。
IsAliveメソッド(引数あり)
アクセスする方法
メソッドを考えてみましょう
引数にヘルス(健康値)を与え、結果をもらうようにしています。
引数; ヘルス(健康値)
戻り値: 生存の場合true、そうでない場合はfalse
冗長だがわかりやすい例
三項演算子を使って変更した例
三項演算子を使って直接戻り値とした場合
三項演算子のelse部分を省略できる例
条件式のみで、結果が真(true)の場合はtrueを、また擬の場合はfalseが得られることを利用して簡略化した。
isAlive変数の宣言と代入を1行にした例
条件式のみで、結果が真(true)の場合はtrueを、また擬の場合はfalseが得られることを利用して簡略化した。
ローカル変数のisAliveを使わなくても済む例
isAlive変数は、メソッド内で特定の計算のために使っているだけなので、省略しても良い
また、()も省略できます。なお、()に関しては、三項演算子のところから省略することができます。
メソッドに式本体を使った例
インテリセンスを使って、式本体に変更した例です
IsAliveメソッド(引数なし)
health変数はあらかじめ宣言、代入されているものとします。
アクセスする方法
結果だけをもらうようにしています。()がついているのがメソッドの特徴です。
戻り値: 生存の場合true、そうでない場合はfalse
メソッドに式本体を使った例
インテリセンスを使って、式本体に変更した例です。
health変数は、他のメソッドから値の変更をされることを想定しています。
IsAliveプロパティ
今度は、プロパティで考えてみましょう
アクセスする方法
プロパティの場合、メソッドと違い引数はありません。呼び出すときは、フィールド変数のように扱えます。
戻り値: 生存の場合true、そうでない場合はfalse
基本の形
生死の確認なので、値を代入することはできないようにします。
そのため、setブロックはあえて削除しています。
health変数は、他のメソッドから変更されるものとしています。
プロパティを式本体に変更
インテリセンスを使って、ラムダ記号を使った式本体に変更してみましょう
補足
メソッドの説明で次の最終コードは、インテリセンスでプロパティに変換ができます。
ディスカッション
コメント一覧
まだ、コメントがありません