Это не легко увидеть здесь:
a.groupBy(_)
Но это проще увидеть примерно так:
a.mkString("<", _, ">")
Я частично применяю метод /функция.Я применяю его к некоторым параметрам (к первому и последнему) и оставляю второй параметр неприменимым, поэтому получаю новую функцию, подобную этой:
x => a.mkString("<", x, ">")
Первый пример - это просто особый случайгде единственный параметр применяется частично.Однако, когда вы используете подчеркивание в выражении, оно обозначает позиционные параметры в анонимной функции.
a.mapValues(_.size)
a.mapValues(x => x.size)
Легко запутаться, потому что оба они приводят к анонимной функции.На самом деле, есть третье подчеркивание, которое используется для преобразования метода в значение метода (которое также является анонимной функцией), например:
a.groupBy _