Scala中的类型别名规则是什么



所以,我不明白为什么要编译它?

type <=[B, A] = A => B 
type F[A] = Double <= A //why our alias <= is allowed here?

形成允许这样构造的类型别名的语法规则是什么?我们只能在订单=>像这种情况一样?

有一个非常简单的规则,即每种类型的A B C都与B[A, C]相同。显然,这只适用于具有2个类型参数的类型。

我找不到=>的定义;

是的,它嵌入在编译器实现/语言规范中
但是,正如您刚才所展示的,在userland上重新实现非常容易;它看起来是这样的:

type =>[+A, +B] = Function1[A, B]

Scala编译器如何解析类似别名表达式的Type1 Type2 Type3 类型序列

语言规范说它支持中缀类型,所以像A OP B等同于OP[A, B]

最新更新