Spec-Zone.ru › Scala 3.2

Класс Conversion.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

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

Исходный код
def andThen[A](g: U => A): T1 => A

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

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

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

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

функция R => A

Возвращает

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

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

Исходный код
def compose[A](g: A => T): A => R

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

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

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

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

функция A => T1

Возвращает

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

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

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

Возвращает строковое представление объекта.

Представление по умолчанию зависит от платформы.

Возвращает

строковое представление объекта.

Классы определения Function1 -> Any
Унаследовано от Function1

Расширения

extension (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.2.0/scala/Conversion.html

Spec-Zone.ru

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