Подчеркивание Scala: ошибка: отсутствует тип параметра для расширенной функции
Недавно я начал изучать scala, и меня немного смутило то, как работает подчеркивание. Хотя в большинстве случаев это дает вам удобный анонимный метод, иногда это просто смущает компилятор (и меня).
Например,
Это работает
val randomList = List(1,2,3)
randomList.groupBy(x => x)
и это
val randomList = List(1,2,3)
randomList.groupBy(_ + 1)
но не это
val randomList = List(1,2,3)
randomList.groupBy(_)
error: missing parameter type for expanded function ((x$1) => randomList.groupBy(x$1))
randomList.groupBy(_)
Несколько похожих случаев задаются на форуме (т.е. в этом), большинство из них говорят, что это расширено до анонимной функции, подобной этой x => randomList.groupBy(x)
, Я просто не знаю, почему компилятор знает, как компилировать второй случай, но не третий. Кроме того, есть ли способ разрешить последний случай без написания явной функции?