您的位置:首页 > 其它

dotty编译器语法特性之一λ类型和隐式函数类型

2017-06-06 12:25 295 查看

λ类型

λ类型是让一个表达式不需要定义,就直接转为一个高阶类型。

[+X, Y] => Map[Y, X]


比如以上,类型定义了一个二进制类型结构,带有一个协变的参数
X
和一个不变的参数
Y
。这个构造函数映射参数
S
T
Map[T,S]

λ类型的类型参数也是可变的和可限定的,比如:

type T[X] = (X, X)

他和
type T = [X] => (X, X)
是等价的

隐式函数类型

翻译:http://dotty.epfl.ch/docs/reference/implicit-function-types.html

一个隐式函数类型描述一个函数为隐式参数,比如:

type Contextual[T] = implicit Context => T


一个隐式函数类型传递给函数的隐式参数,就像传递给方法的隐式参数一样,例如:

implicit ctx: Context = ...

def f(x: Int): Contextual[Int] = ...

f(2)    // is expanded to f(2)(ctx)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  scala dotty
相关文章推荐