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)
相关文章推荐
- dotty编译器语法特性之一交叉类型,联合类型和文本单例类型
- dotty编译器语法特性之一幽灵类型
- dotty编译器语法特性之一枚举类型
- C++基础::语法特性::函数重写(override)与协变返回类型(covariant return type)
- 【你不知道】表达式中的隐式类型转换、无名对象作为函数实参
- C++0x新特性:decltype类型指示符与返回类型后置语法
- 不能不说的C#特性-匿名类型与隐式类型局部变量
- 4、步步为营VS 2008 + .NET 3.5(4) - C# 3.0新特性之LambdaExpressions(Lambda表达式)、QuerySyntax(查询语法)和AnonymousTypes(匿名类型)
- C#3.0新特性之隐式类型局部变量的使用
- 不允许从数据类型 nvarchar 到 varbinary 的隐式转换。请使用 CONVERT 函数来运行此查询
- 关于 “不允许从数据类型 sql_variant 到 uniqueidentifier 的隐式转换。请使用 CONVERT 函数来运行此查询“的最终解决
- 步步为营VS 2008 + .NET 3.5(4) - C# 3.0新特性之LambdaExpressions(Lambda表达式)、QuerySyntax(查询语法)和AnonymousTypes(匿名类型)
- C_语法概念_print类型函数详解
- SQL中一些不经意隐式类型转换或者函数使用导致索引失效问题
- [易学C#]C#3.0语言新特性之隐式类型(转)
- C#3.0新特性之隐式类型数组
- OpenGL学习——函数语法(数据类型,函数命名方式,辅助库,平台独立性)
- 步步为营VS 2008 + .NET 3.5(4) - C# 3.0新特性之LambdaExpressions(Lambda表达式)、QuerySyntax(查询语法)和AnonymousTypes(匿名类型)
- [易学C#]C#3.0语言新特性之隐式类型
- 了解C#特性匿名类型与隐式类型局部变量