【Unity】ラムダ式を実装する

cocos2dxでもv3.0から利用できるようになった「ラムダ式」。 これをUnity(C#)で利用する方法を調べてみました。

ラムダ式

メソッドを使わなくても、メソッドのようなことができるのが「ラムダ式」です。 コードが直感的でわかりやすくなります。 MonoDevelopで利用する場合、まず以下を記載します。 [c] using System; [/c]

ラムダ式を利用する場合以下の2つの方法を使います。

  • 戻り値がある場合は[Func<>]を利用します。
  • 戻り値がない場合は[Action<>]を利用します。

使用例 1 戻り値+引数あり

int型の戻り値と引数のあるラムダ式は以下になります。 [c] Func<int,int> mul = x => x+x; Debug.Log("laumda1 " + mul(5)); //10 [/c]

ラムダ式の基本的な記述として矢印を利用します。 [c] //xは引数 x => x + x; [/c] 特にxで無くても大丈夫です。 矢印から後ろに行いたい処理を記述します。

[c] //最初が引数の型(hoge)、2番めが戻り値の型(hoge2)です。 Func<hoge,hoge2> [/c]

使用例 2 引数あり

戻り値なし、引数(int型)ありのラムダ式。 [c] Action hogehoge = x =>{

x = x * x;

}; hogehoge(5);

[/c]

使用例 4 引数が2つあり

引数(int型)が2つある時のラムダ式です。 [c] Action<int,int> hogehoge = (x,y)=>{

x = x * y; //10

}; hogehoge(5,2);

[/c]

その他 : デリゲートを使った場合

ラムダ式ではないのですが、メソッドの参照して利用する場合は以下のようになります。 [c] Action m = Hoge; m(5);

void Hoge(int x){

Debug.Log("Lamda Hoge" + x ); //5

}

[/c]

最後に

簡単ですが、ラムダ式について書いてみました。 実際にどのような場面で利用をすればいいのかを考えていく必要がありますが、とても簡単に利用できました。

【参考】

Action デリゲート (System)

Unity5 3Dゲーム開発講座 ユニティちゃんで作る本格アクションゲーム (Smart Game Developer)Unity5 3Dゲーム開発講座 ユニティちゃんで作る本格アクションゲーム (Smart Game Developer)
まつだす,BATA,㊥Maruchu,うにたじゃむお,栗坂こなべ,森理 麟,alwei

翔泳社
売り上げランキング : 27545

Amazonで詳しく見る