Spec-Zone.ru › Scala 3.1

Объект scala.PartialFunction

Класс-компаньон • Исходный код

объект PartialFunction

Несколько полезных операций, которые используют дополнительную информацию, доступную в частичных функциях. Примеры:

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 }
Надтипы
класс Object
тракт Matchable
класс Any
Тип «Я сам»
PartialFunction.type

Классы-классы

Исходный код
финальный класс ElementWiseExtractor[-A, +B] extends AnyVal

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

Исходный код
def cond[A](x: A)(pf: PartialFunction[A, Boolean]): Boolean

Булево условие, которое является результатом заданной функции, если она определена, и ложно в противном случае.

Она ведет себя как case _ => false была добавлена к частичной функции.

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

частичная функция

x

значение для проверки

Возвращает

истина, если x находится в области определения pf и pf(x) == true.

Исходный код
def condOpt[A, B](x: A)(pf: PartialFunction[A, B]): Option[B]

Применить функцию к заданному значению, если она определена, и вернуть результат в Some; в противном случае вернуть None.

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

PartialFunction[T, U]

x

значение для проверки

Возвращает

Some(pf(x)) если pf isDefinedAt x, None в противном случае.

Исходный код
def empty[A, B]: PartialFunction[A, B]

Частичная функция с пустой областью определения. Любая попытка вызвать пустую частичную функцию приводит к выбрасыванию исключения scala.MatchError.

Исходный код
def fromFunction[A, B](f: A => B): PartialFunction[A, B]

Преобразует обычную функцию в частичную функцию. Обратите внимание, что вызов isDefinedAt(x) этой частичной функции вернет true для каждой x.

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

обычная функция

Возвращает

частичная функция, которая делегирует обычной функции f

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/PartialFunction$.html

Spec-Zone.ru

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