2013-03-01 15 views
10

Scala'da isim-arama parametreleriyle anonim bir işlev nasıl tanımlanır?İşlevsel ad-by-name parametresiyle işlevlendirme

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

Bu çağrı değer-ile-y ile iyi çalışır, ancak çağrı bazında adıyla:

Aşağıdaki çalıştı. Niye ya?

cevap

18

Bu yapılabilir, ama biraz daha farklı bir şekilde yapılabilir:

val fun: (Boolean, => Int) => Int = (x, y) => if (x) y else 0 
: parametrelerden ayrı türü bildirmek