2013-03-01 11 views
10

スカラーでcall-by-nameパラメータを持つ無名関数をどのように定義しますか?名前による呼出しパラメータを持つ関数リテラル

私は次のことを試してみました:

val fun = (x: Boolean, y: =>Int) => if(x) y else 0 

これは、コールごとの値Yとうまく動作しますが、ないコール・バイ・名前を持ちます。どうして?

答えて

18

それは行われますが、わずかに異なる方法ですることができます。

val fun: (Boolean, => Int) => Int = (x, y) => if (x) y else 0 
:パラメータとは別に型を宣言