def foo(x:Int, f:Unit=>Int) = println(f())
foo(2, {Unit => 3+4}
//case1
def loop:Int = 7
foo(2, loop) //does not compile
changing loop to
//case 2
def loop():Int = 7
foo(2, loop) // does not compile
changing loop to
//case 3
def loop(x:Unit): Int = 7 //changing according to Don Comments
foo(2,loop) // compiles and works fine
should'nt case 1 и case 2 также работают? почему они не работают?
определение foo как
def foo(x:Int, y:()=>Int)
то случай 2 работает, но не случай 1.
Arent, все они должны работать, определяя функции в любом случае.
//также я думаю() = > Int в foo - это плохой стиль, y: = > Int не работает, комментарии