Функции и методы в Scala
В языке программирования Scala функция объявляется посредством ключевого слова def. Рассмотрим пример ее объявления и применения.
А вот как это выглядит на языке Java:
Из примера видно, что что указание типа и использование точки с запятой не обязательны. Кроме того, не обязательны и фигурные скобки вокруг единственного выражения, впрочем, как и слово return. Мало того, его применение считают плохой практикой. Также стоит сказать, что из функции осуществляется возврат значения последней выполненной команды.
Но вообще, важно упомянуть, что функция тоже является объектом. Каждая функция в Scala является экземпляром класса Function, у которого присутствует метод apply. Именно поэтому можно выполнить запись таким образом (на место аргумента функции ставится знак подчеркивания):
При этом вызов метода apply следует подразумевать по дефолту, так как внешне применение функций выглядит так же, как и в языке Java:
По сути, все 4 вызова функции являются идентичными. При этом представление функций в качестве объектов позволяет оперировать с этими функциями, как с прочими объектами: передавать в виде аргументов, возвращать из других функций, расширять вспомогательными методами и т. п., что дает возможность языку программирования Scala полноценным образом поддерживать парадигму функционального программирования.
Анонимные функции
Кроме вышесказанного, существуют и анонимные функции (так называемые лямбда-функции). Объявляются они следующим образом:
В коде выше мы выполняем объявление анонимной функции, принимающей один целочисленный аргумент с присваиванием переменной f. Далее f уже применяется как обычная функция.
По материалам https://tproger.ru/articles/scala-tutorial-for-beginners/.