Conversion
A class for implicit values that can serve as implicit conversions The implicit resolution algorithm will act as if there existed the additional implicit definition:
A class for implicit values that can serve as implicit conversions The implicit resolution algorithm will act as if there existed the additional implicit definition:
def $implicitConversion[T, U](x: T)(c: Conversion[T, U]): U = c(x)
However, the presence of this definition would slow down implicit search since
its outermost type matches any pair of types. Therefore, implicit search
contains a special case in Implicits#discardForView
which emulates the
conversion in a more efficient way.
Note that this is a SAM class - function literals are automatically converted
to the Conversion
values.
Also note that in bootstrapped dotty, Predef.<:<
should inherit from
Conversion
. This would cut the number of special cases in discardForView
from two to one.
The Conversion
class can also be used to convert explicitly, using
the convert
extension method.
Value members
Abstract methods
Inherited methods
Composes two instances of Function1 in a new Function1, with this function applied first.
Composes two instances of Function1 in a new Function1, with this function applied first.
- Type Params
- A
the result type of function
g
- Value Params
- g
a function R => A
- Returns
a new function
f
such thatf(x) == g(apply(x))
- Inherited from
- Function1
Composes two instances of Function1 in a new Function1, with this function applied last.
Composes two instances of Function1 in a new Function1, with this function applied last.
- Type Params
- A
the type to which function
g
can be applied
- Value Params
- g
a function A => T1
- Returns
a new function
f
such thatf(x) == apply(g(x))
- Inherited from
- Function1