Spec-Zone.ru › Scala 3.1

Трейт scala.Function1

Объект-компаньон • Исходный код

@implicitNotFound(msg = "Нет неявного преобразования из ${T1} => ${R}.")
trait Function1[@specialized -T1, @specialized +R] extends AnyRef

Функция от 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, заключающуюся в том, что последняя может указывать входные данные, которые она не будет обрабатывать.

Супертипы
класс Object
трейт Matchable
класс Any
Известные подтипы
219 типов
класс From <:< To
класс From =:= To
класс Conversion[T, U]
тракт PartialFunction[A, B]
тракт MapOps[K, V, CC, C]
тракт Map[K, V]
класс AbstractMap[K, V]
класс AbstractMap[K, V]
класс HashMap[K, V]
класс IntMap[T]
класс ListMap[K, V]
класс LongMap[T]
класс Map1[K, V]
класс Map2[K, V]
класс Map3[K, V]
класс Map4[K, V]
класс WithDefault[K, V]
класс WithDefault[K, V]
класс TreeMap[K, V]
класс TreeSeqMap[K, V]
класс VectorMap[K, V]
класс AbstractMap[K, V]
класс TrieMap[K, V]
класс AnyRefMap[K, V]
класс CollisionProofHashMap[K, V]
класс HashMap[K, V]
класс LinkedHashMap[K, V]
класс ListMap[K, V]
класс LongMap[V]
класс WithDefault[K, V]
класс WithDefault[K, V]
класс OpenHashMap[Key, Value]
класс TreeMap[K, V]
класс SystemProperties
тракт DefaultMap[K, V]
тракт SeqMap[K, V]
тракт SeqMap[K, V]
тракт SeqMap[K, V]
тракт SortedMap[K, V]
тракт SortedMap[K, V]
тракт SortedMap[K, V]
тракт Map[K, V]
тракт Map[K, V]
тракт Map[K, V]
тракт MultiMap[K, V]
тракт MapFactoryDefaults[K, V, CC, WithFilterCC]
класс WeakHashMap[K, V]
тракт MapView[K, V]
класс AbstractMapView[K, V]
класс Filter[K, V]
класс FilterKeys[K, V]
класс Id[K, V]
класс MapValues[K, V, W]
класс TapEach[K, V, U]
тракт SortedMapFactoryDefaults[K, V, CC, WithFilterCC, UnsortedCC]
тракт SortedMapOps[K, V, CC, C]
тракт StrictOptimizedSortedMapOps[K, V, CC, C]
тракт StrictOptimizedSortedMapOps[K, V, CC, C]
тракт SortedMapOps[K, V, CC, C]
тракт SortedMapOps[K, V, CC, C]
тракт StrictOptimizedMapOps[K, V, CC, C]
тракт StrictOptimizedMapOps[K, V, CC, C]
тракт MapOps[K, V, CC, C]
тракт MapOps[K, V, CC, C]
тракт Seq[A]
класс AbstractSeq[A]
класс AbstractSeq[A]
класс ArraySeq[A]
класс ofBoolean
класс ofByte
класс ofChar
класс ofDouble
класс ofFloat
класс ofInt
класс ofLong
класс ofRef[T]
класс ofShort
класс ofUnit
класс LazyList[A]
класс List[A]
класс ::[A]
объект Nil.type
класс NumericRange[T]
класс Exclusive[T]
класс Inclusive[T]
класс Queue[A]
класс Range
класс Exclusive
класс Inclusive
класс Stream[A]
класс Cons[A]
объект Empty.type
класс Vector[A]
класс WrappedString
класс AbstractSeq[A]
класс AbstractBuffer[A]
класс ArrayBuffer[A]
класс ArrayDeque[A]
класс Queue[A]
класс Stack[A]
класс ListBuffer[A]
класс UnrolledBuffer[T]
класс ArraySeq[T]
класс ofBoolean
класс ofByte
класс ofChar
класс ofDouble
класс ofFloat
класс ofInt
класс ofLong
класс ofRef[T]
класс ofShort
класс ofUnit
класс StringBuilder
тракт IndexedSeq[A]
тракт IndexedSeq[A]
тракт IndexedSeq[T]
тракт IndexedBuffer[A]
тракт LinearSeq[A]
тракт LinearSeq[A]
тракт Seq[A]
тракт Seq[A]
тракт Buffer[A]
класс Accumulator[A, CC, C]
класс AnyAccumulator[A]
класс DoubleAccumulator
класс IntAccumulator
класс LongAccumulator
class АбстрактнаяЧастичнаяФункция[T1, R]
trait ОперацииНадМножествами[A, CC, C]
trait Множество[A]
class АбстрактноеМножество[A]
class АбстрактноеМножество[A]
class МножествоЗначений
class НеизменяемоеМножествоКлючей
class БитовыйМассив
class БитовыйМассив1
class БитовыйМассив2
class БитовыйМассивN
class МножествоХеш-таблиц[A]
class МножествоСписок[A]
class Множество1[A]
class Множество2[A]
class Множество3[A]
class Множество4[A]
class НеизменяемоеОтсортированноеМножествоКлючей
class ДеревоМножеств[A]
class АбстрактноеИзменяемоеМножество[A]
class ИзменяемыйБитовыйМассив
class ИзменяемоеМножествоХеш-таблиц[A]
class СвязанноеИзменяемоеМножествоХеш-таблиц[A]
class ИзменяемоеДеревоМножеств[A]
trait ОтсортированноеМножество[A]
trait БитовыйМассив
trait НеизменяемоеОтсортированноеМножество[A]
trait ИзменяемоеОтсортированноеМножество[A]
trait НеизменяемоеМножество[A]
trait ИзменяемоеМножество[A]
trait ОперацииНадОтсортированнымиМножествами[A, CC, C]
trait ОперацииНадБитовымиМассивами[C]
trait По умолчанию для создания ОтсортированныхМножеств[A, CC, WithFilterCC]
trait ОптимизированныеОперацииНадОтсортированнымиМножествами[A, CC, C]
trait ОптимизированныеОперацииНадНеизменяемымиОтсортированнымиМножествами[A, CC, C]
trait ОперацииНадНеизменяемымиОтсортированнымиМножествами[A, CC, C]
trait ОперацииНадИзменяемымиОтсортированнымиМножествами[A, CC, C]
trait ОптимизированныеОперацииНадМножествами[A, CC, C]
trait ОптимизированныеОперацииНадНеизменяемымиМножествами[A, CC, C]
trait ОперацииНадНеизменяемымиМножествами[A, CC, C]
trait ОперацииНадИзменяемымиМножествами[A, CC, C]
class ИзJavaПотребитель[T]
class ИзJavaПотребительДвойных
class ИзJavaФункцияДвойных[R]
class ИзJavaПредикатДвойных
class ИзJavaФункцияДвойноеВЦелое
class ИзJavaФункцияДвойноеВДлинное
class ИзJavaУнарныйОператорДвойных
class ИзJavaФункция[T, R]
class ИзJavaПотребительЦелых
class ИзJavaФункцияЦелых[R]
class ИзJavaПредикатЦелых
class ИзJavaФункцияЦелоеВДвойное
class ИзJavaФункцияЦелоеВДлинное
class ИзJavaУнарныйОператорЦелых
class ИзJavaПотребительДлинных
class ИзJavaФункцияДлинных[R]
class ИзJavaПредикатДлинных
class ИзJavaФункцияДлинноеВДвойное
class ИзJavaФункцияДлинноеВЦелое
class ИзJavaУнарныйОператорДлинных
class ИзJavaПредикат[T]
class ИзJavaФункцияВДвойное[T]
class ИзJavaФункцияВЦелое[T]
class ИзJavaФункцияВДлинное[T]
class ИзJavaУнарныйОператор[T]
class АбстрактнаяФункция1[T1, R]
trait JФункция1$mcDD$sp
trait JФункция1$mcDF$sp
trait JФункция1$mcDI$sp
trait JФункция1$mcDJ$sp
trait JФункция1$mcFD$sp
trait JФункция1$mcFF$sp
trait JФункция1$mcFI$sp
trait JФункция1$mcFJ$sp
trait JФункция1$mcID$sp
trait JФункция1$mcIF$sp
trait JФункция1$mcII$sp
trait JФункция1$mcIJ$sp
trait JФункция1$mcJD$sp
trait JФункция1$mcJF$sp
trait JФункция1$mcJI$sp
trait JФункция1$mcJJ$sp
trait JФункция1$mcVD$sp
trait JФункция1$mcVF$sp
trait JФункция1$mcVI$sp
trait JФункция1$mcVJ$sp
trait JФункция1$mcZD$sp
trait JФункция1$mcZF$sp
trait JФункция1$mcZI$sp
trait JФункция1$mcZJ$sp
Тип self
T1 => R

Абстрактные методы

Источник
def apply(v1: T1): R

Применяет тело этой функции к аргументу.

Возвращает

результат применения функции.

Конкретные методы

Источник@unspecialized
def andThen[A](g: R => A): T1 => A

Компонует две функции Function1 в новую Function1, сначала применяя эту функцию.

Параметры типа
A

тип результата функции g

Параметры значения
g

функция R => A

Возвращает

новая функция f, такая что f(x) == g(apply(x))

Источник@unspecialized
def compose[A](g: A => T1): A => R

Компонует две функции Function1 в новую Function1, применяя эту функцию последней.

Параметры типа
A

тип, к которому можно применить функцию g

Параметры значения
g

функция A => T1

Возвращает

новая функция f, такая что f(x) == apply(g(x))

Источник
override def toString(): String

Классы определений Any

Источник
def unlift: PartialFunction[A, B]

Неявным образом добавлено классом UnliftOps

Преобразует опциональную функцию в частичную функцию.

Пример

В отличие от 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API