- Zastanawia mnie taka sytuacja :
def m() = {println("m"); 0}
def callByName(x: => Int) = {println("call by name"); x}
callByName(m())
Wynik
call by name
m
To że najpierw ewaluuję metodęm() nie ma wpływu na call by name ?
2. Czy są jakieś zasadnicze różnice jeśli do parametru typu call by name wkładam metodę :
def m() = ...
vs
def m = ...
?
3. Czy dobrze mi się wydaje, że dla typów x: => R i x: () => R ewaluacja następuje w ten sam sposób - za każdym razem gdy zostaną wezwane ?
4. Czy przekazywanie typu funkcyjnego przez parametr call by name ma jakiś sens ?