Краткий ответ
Это функция, которая получает строку и возвращает Int
Длинный ответ
В Scala функции являются гражданами первого класса. Это означает, что вы можете хранить их в переменных или (как в этом случае) передавать их в качестве аргументов.
Вот как выглядит литерал функции
() => Unit
Это функция, которая не получает аргументов и возвращает Unit (эквивалент Java для void).
Это будет функция, которая получает String в качестве параметра и возвращает Int:
(String) => Int
Кроме того, scala позволяет отбросить скобки как форму синтаксического сахара, как в вашем примере. Предыдущий arg:
является просто именем аргумента.
Внутри func
вы бы вызвали полученную функцию (arg
) следующим образом:
val result = arg("Some String") // this returns a Int