Ответ 1
См. также этот вопрос и ответ на SO:
В Scala, если объявление метода не имеет знака равенства перед его телом, компилятор сообщает, что тип результата будет
Unit
В принципе объявление функции без =
означает, что функция возвращает Unit
, а компилятор вставляет ()
для вас в конце. Функция, которая должна вернуть значение << → должна быть объявлена с помощью нотации =
(хотя, конечно, компилятор может вывести тип возвращаемого значения из типа выражения).