λ类型
λ类型是让一个表达式不需要定义,就直接转为一个高阶类型。
[+X, Y] => Map[Y, X]
比如以上,类型定义了一个二进制类型结构,带有一个协变的参数X
和一个不变的参数Y
。这个构造函数映射参数S
和T
到Map[T,S]
。 λ类型的类型参数也是可变的和可限定的,比如:
type T[X] = (X, X)
他和type T = [X] => (X, X)
是等价的
隐式函数类型
翻译:
一个隐式函数类型描述一个函数为隐式参数,比如:
type Contextual[T] = implicit Context => T
一个隐式函数类型传递给函数的隐式参数,就像传递给方法的隐式参数一样,例如:
implicit ctx: Context = ...def f(x: Int): Contextual[Int] = ...f(2) // is expanded to f(2)(ctx)