Spec-Zone.ru › Scala 3.1

Класс scala.Conversion

Исходный код

@FunctionalInterface
абстрактный класс Conversion[-T, +U] extends T => U

Класс для неявных значений, которые могут служить неявными преобразованиями. Алгоритм неявкого разрешения будет действовать так, как будто существует дополнительное неявное определение:

def $implicitConversion[T, U](x: T)(c: Conversion[T, U]): U = c(x)

Однако наличие этого определения замедлило бы поиск неявных значений, так как его внешний тип соответствует любой паре типов. Поэтому поиск неявных значений содержит специальный случай в Implicits#discardForView, который эмулирует преобразование более эффективным способом.

Обратите внимание, что это класс SAM — литералы функций автоматически преобразуются в значения Conversion.

Также обратите внимание, что в загрузке dotty Predef.<:< должен наследоваться от Conversion. Это сократит количество специальных случаев в discardForView с двух до одного.

Класс Conversion также может использоваться для явного преобразования, используя метод расширения convert.

Супертипы
тип T => U
класс Object
тип Matchable
класс Any

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

Исходник
def apply(x: T): U

Преобразовать значение x типа T в тип U

Унаследованные методы

Исходник@unspecialized
def andThen[A](g: U => A): T => A

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

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

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

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

функция R => A

Возвращаемое значение

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

Унаследованно от Function1

Исходник@unspecialized
def compose[A](g: A => T): A => U

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

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

тип, к которому может быть применена функция g

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

функция A => T1

Возвращаемое значение

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

Унаследованно от Function1

Исходник
override def toString(): String

Определяющие классы Function1 -> Any
Унаследованно от Function1

Расширения

расширение (x: T)

Исходник
def convert: U

x.convert преобразует значение x типа T в тип U

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

Spec-Zone.ru

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