Как объяснено в разделе «Синтаксис заполнителя для анонимных функций» спецификации ,
println(_)
является сокращением для литерала анонимной функции
w => println(w)
который, в свою очередь, является сокращением для чего-то вроде
(w: (String, Int)) => println(w)
в данном конкретном случае.
Следовательно,
wordCounts.foreach(println(_))
просто печатает каждый элемент wordCounts
.
Обратите внимание, что это также может быть написано еще короче:
wordCounts foreach println