Я новичок в Scala, и у меня возникла проблема с пониманием этого. Почему существуют два синтаксиса для одной и той же концепции, и ни один из них не является более эффективным или коротким в этом (просто с точки зрения ввода, может быть, они отличаются поведением - вот что я прошу).
В Go аналоги имеют практическую разницу - вы не можете перенаправить ссылку на лямбду, назначенную переменной, но вы можете ссылаться на именованную функцию из любого места. Scala смешивает эти два, если я правильно их понимаю: вы можете перенаправить ссылку на любую переменную (пожалуйста, поправьте меня, если я ошибаюсь).
Обратите внимание, что этот вопрос не является дубликатом В чем разница между "def" и "val" для определения функции.
Я знаю, что def
оценивает выражение после =
каждый раз, когда он ссылается/вызывается, а val
- только один раз. Но это отличается от того, что выражение в определении val
оценивается функцией.
Это также не дубликат Функции против методов в Scala.
Этот вопрос касается синтаксиса Scala, и он не спрашивает о разнице между функциями и методами напрямую. Несмотря на то, что ответы могут быть похожими по содержанию, все равно важно, чтобы эта точная точка была очищена на этом сайте.