Что означает этот синтаксис scala?

#scala #functional-programming

#scala #функциональное программирование

Вопрос:

Кто-нибудь может объяснить, что означает (p: Char => Boolean)? Как я могу использовать такой параметр?

 def search(p: Char => Boolean): Boolean = {

}
  

Ответ №1:

Это означает, что p это функция, которая принимает Char и возвращает Boolean . Например, если бы у вас было что-то Char в переменной с именем c , вы могли бы выполнить p(c) , и результатом было бы Boolean .

Ответ №2:

Ниже приведен тривиальный пример того, как можно было бы выполнить search с Char => Boolean аргументом:

 case class Message(msg: String) {
  def search(p: Char => Boolean): Boolean = {
    msg.exists(p)
  }
}

val isVowel: Char => Boolean = c => "AEIOUaeiou".contains(c)
// isVowel: Char => Boolean = <function1>

Message("abcde").search(isVowel)
// res1: Boolean = true

Message("vwxyz").search(isVowel)
// res2: Boolean = false
  

Ответ №3: