Jestem nowy w scala, ale mam tło w javascript.Dlaczego Scala potrzebuje oświadczenia def?
Podczas gdy widzę potrzebę oddzielenia między val
i var
(zmienne i niezmienne), nie widzę powodu, dla którego instrukcja def
była kiedykolwiek potrzebna.
Jeśli funkcje są prawdziwie pierwszorzędnymi obywatelami, tak jak w javascript, dlaczego powinny być zadeklarowane z def
, a nie z val
?
jest to, że decyzji projektowych w oparciu o ograniczeniach związanych z JVM, czy istnieje jakaś logika, że nie udało mi się zrozumieć?
@ 0__ niezupełnie dupe: na pytanie * dlaczego został zaprojektowany w ten sposób *, nie * jaka jest różnica * –
@ om-nom-nom: OP pyta, dlaczego funkcje są zadeklarowane z 'def', ale funkcje nie są zadeklarowane z 'def', są deklarowane z' => ', a' def' nie deklaruje funkcji, deklaruje metody, które zasadniczo różnią się od funkcji. Całe założenie tego pytania polega na tym, że metody i funkcje są tym samym, co jest po prostu błędne i jest ładnie wyjaśnione w duplikacie pytania. –
@ JörgWMittag * Całe założenie pytaniem jest to, że metody i funkcje są to samo, które jest po prostu błędne. * Ponownie, jest to * Jaka jest różnica * (innymi słowy, są one różne w rzeczywistości), ale robi nie wyjaśnia, dlaczego taka separacja została dokonana wiele lat temu. –