Трейт scala.Function1
@implicitNotFound(msg = "Нет неявного преобразования из ${T1} => ${R}.")
Функция от 1 параметра.
В следующем примере, определение succ — это сокращение для определения анонимного класса anonfun1:
object Main extends App {
val succ = (x: Int) => x + 1
val anonfun1 = new Function1[Int, Int] {
def apply(x: Int): Int = x + 1
}
assert(succ(0) == anonfun1(0))
}
Обратите внимание на разницу между Function1 и scala.PartialFunction, заключающуюся в том, что последняя может указывать входные данные, которые она не будет обрабатывать.
| Супертипы |
|---|
| Известные подтипы | 219 типов |
|---|
| Тип self |
|---|
Абстрактные методы
Источник
def apply(v1: T1): R
Применяет тело этой функции к аргументу.
| Возвращает | результат применения функции. |
|---|
Конкретные методы
Источник@unspecialized
def andThen[A](g: R => A): T1 => A
Компонует две функции Function1 в новую Function1, сначала применяя эту функцию.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая функция |
Источник@unspecialized
def compose[A](g: A => T1): A => R
Компонует две функции Function1 в новую Function1, применяя эту функцию последней.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новая функция |
Источник
| Классы определений | Any |
|---|
Источник
def unlift: PartialFunction[A, B]
Преобразует опциональную функцию в частичную функцию.
| Пример |
В отличие от Function.unlift, этот метод UnliftOps.unlift может использоваться в экстракторах. val of: Int => Option[String] = { i =>
if (i == 2) {
Some("matched by an optional function")
} else {
None
}
}
util.Random.nextInt(4) match {
case of.unlift(m) => // Convert an optional function to a pattern
println(m)
case _ =>
println("Not matched")
}
|
|---|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/Function1.html