Что такое scala-нотация, написанная как _: type?

Я слежу за учебником scala.

В литературе функций он имеет следующие обозначения:

(_ : *type*) => println("pressed")

Например,

(_ : Int) => println("pressed")

В этих обозначениях я не мог понять, что означает (_: type).

1 ответ

Это анонимная функция с игнорируемым параметром. В Scala соглашение заключается в использовании подчеркивания, когда вы не используете параметр.

Вы можете переписать то же самое:

(unused: Int) => println("pressed")

Что касается того, почему кто-то захочет это сделать; часто вам нужно успокоить вывод типа Scala. Поэтому, если вы только написали

_ => println("pressed")

то Scala не сможет вывести тип входного параметра. Набрав его как

(_: Int) => println("pressed")

что тип, выводимый компилятором, - Int => Unit.

licensed under cc by-sa 3.0 with attribution.