#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:
Просто загуглите «функции scala высшего порядка», и вы найдете множество примеров.
https://docs.scala-lang.org/tour/higher-order-functions.html
https://www.scala-exercises.org/scala_tutorial/higher_order_functions
https://dzone.com/articles/higher-order-functions-in-scala-1
https://en.wikibooks.org/wiki/Scala/Higher-order_functions_1