Объект scala.PartialFunction
Компаньон трейт PartialFunction
объект PartialFunction
Типы членов
final класс ElementWiseExtractor[-A, +B] extends AnyVal
Члены значения
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- returns
trueесли !(this == that), иначе false.
- Определяющие классы
- AnyRef → Any
final def ##(): Int
Эквивалентно x.hashCode за исключением boxed числовых типов и null. Для чисел, возвращает хэш-значение, которое согласуется с равенством значений: если два экземпляра типа значения сравниваются как true, то ## будет производить одно и то же хэш-значение для каждого из них. Для null возвращает хэш-код, где null.hashCode вызывает NullPointerException.
- returns
хэш-значение, согласованное с ==
- Определяющие классы
- AnyRef → Any
final def ==(arg0: Any): Boolean
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- returns
trueесли принимающий объект эквивалентен аргументу;falseиначе.
- Определяющие классы
- AnyRef → Any
final def asInstanceOf[T0]: T0
Привести принимающий объект к типу T0.
Обратите внимание, что успешность приведения типов во время выполнения зависит от семантики стирания типов Scala. Поэтому выражение 1.asInstanceOf[String] вызовет ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] нет. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, являются ли содержимое списка запрашиваемого типа.
- returns
принимающий объект.
- Определяющие классы
- Any
- Выбрасываемые исключения
ClassCastExceptionесли принимающий объект не является экземпляром стирания типаT0.
def clone(): AnyRef
Создать копию принимающего объекта.
Реализация метода clone по умолчанию зависит от платформы.
- returns
копия принимающего объекта.
def cond[T](x: T)(pf: PartialFunction[T, Boolean]): Boolean
Создает булево условие на основе значения и частичной функции. Ведет себя как оператор 'match' с неявным 'case _ => false' после предоставленных случаев.
- x
значение для проверки
- pf
частичная функция
- returns
true, если
xнаходится в области определенияpfиpf(x) == true.
def condOpt[T, U](x: T)(pf: PartialFunction[T, U]): Option[U]
Преобразует PartialFunction[T, U] pf в Function1[T, Option[U]] f, результат которого Some(x) если аргумент находится в области определения pf и None иначе, и применяет его к значению x. По сути, это оператор match, который оборачивает все результаты case в Some(_) и добавляет case _ => None в конец.
- x
значение для проверки
- pf
PartialFunction[T, U]
- returns
Some(pf(x))еслиpf isDefinedAt x,Noneиначе.
def empty[A, B]: PartialFunction[A, B]
Частичная функция с пустой областью определения. Любая попытка вызвать пустую частичную функцию приводит к выбрасыванию исключения scala.MatchError.
- С версии
2.10
final def eq(arg0: AnyRef): Boolean
Проверяет, является ли аргумент (that) ссылкой на принимающий объект (this).
Метод eq реализует отношение эквивалентности на не-null экземплярах AnyRef, и имеет три дополнительных свойства:
-
Он согласован: для любых не-null экземпляров
x и y типа AnyRef, множественные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false. Для любого не-null экземпляра x типа AnyRef, x.eq(null) и null.eq(x) возвращает false.
null.eq(null) возвращает true. При переопределении методов equals или hashCode, важно убедиться, что их поведение согласуется с равенством ссылок. Поэтому, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и они должны иметь одинаковое хэш-значение (o1.hashCode == o2.hashCode).
- returns
trueесли аргумент является ссылкой на принимающий объект;falseиначе.
- Определяющие классы
- AnyRef
def equals(arg0: AnyRef): Boolean
Метод равенства для ссылочных типов. Реализация по умолчанию делегирует eq.
См. также equals в scala.Any.
- returns
trueесли принимающий объект эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- AnyRef → Any
def finalize(): Unit
Вызывается сборщиком мусора для принимающего объекта, когда больше нет ссылок на объект.
Подробности о том, когда и вызывается ли метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями, зависят от платформы.
def fromFunction[A, B](f: (A) => B): PartialFunction[A, B]
Преобразует обычную функцию в частичную функцию. Обратите внимание, что вызов isDefinedAt(x) для этой частичной функции вернет true для каждого x.
- f
обычная функция
- returns
частичная функция, которая делегирует обычной функции
f
final def getClass(): Class[_ <: AnyRef]
Возвращает представление класса объекта во время выполнения.
- returns
объект класса, соответствующий типу получателя во время выполнения.
def hashCode(): Int
Метод hashCode для ссылочных типов. См. hashCode в scala.Any.
- returns
хеш-код для этого объекта.
final def isInstanceOf[T0]: Boolean
Проверяет, является ли динамический тип принимающего объекта T0.
Обратите внимание, что результат теста зависит от семантики стирания типов Scala. Поэтому выражение 1.isInstanceOf[String] вернет false, а выражение List(1).isInstanceOf[List[String]] вернет true. Во втором примере, поскольку тип аргумента стирается во время компиляции, невозможно проверить, являются ли содержимые списка указанного типа.
- returns
trueесли принимающий объект является экземпляром стирания типаT0;falseв противном случае.
- Определяющие классы
- Any
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- returns
trueесли аргумент не является ссылкой на принимающий объект;falseв противном случае.
- Определяющие классы
- AnyRef
final def notify(): Unit
Будит один поток, ожидающий на мониторе принимающего объекта.
- Определяющие классы
- AnyRef
- Аннотации
- @native()
- Примечание
не указан в SLS как член AnyRef
final def notifyAll(): Unit
Будит все потоки, ожидающие на мониторе принимающего объекта.
- Определяющие классы
- AnyRef
- Аннотации
- @native()
- Примечание
не указан в SLS как член AnyRef
final def synchronized[T0](arg0: => T0): T0
- Определяющие классы
- AnyRef
def toString(): String
Создает строковое представление этого объекта. Представление по умолчанию зависит от платформы. На платформе Java это конкатенация имени класса, "@", и хэш-кода объекта в шестнадцатеричном формате.
- returns
строковое представление объекта.
- Определяющие классы
- AnyRef → Any
final def wait(): Unit
- Определяющие классы
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long, arg1: Int): Unit
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/PartialFunction$.html
Несколько полезных операций, использующих дополнительную информацию, доступную в частичных функциях. Примеры:
import PartialFunction._ def strangeConditional(other: Any): Boolean = cond(other) { case x: String if x == "abc" || x == "def" => true case x: Int => true } def onlyInt(v: Any): Option[Int] = condOpt(v) { case x: Int => x }2.8