2

在猫的测试中,*作为类型参数出现,例如,这里:

checkAll("Nested[Eval, List, *]", DeferTests[Nested[Eval, List, *]].defer[Int])

(见https://github.com/typelevel/cats/blob/master/tests/src/test/scala/cats/tests/NestedSuite.scala#L19

我知道编译器会将其转换为类型级别的函数,但为什么呢?它在哪里定义?它是语言规范的一部分还是猫的一部分(或它的依赖项之一)?

4

1 回答 1

4

它是 kind-projector 编译器插件,可将带星号的类型转换为 lambdas 类型

https://github.com/typelevel/kind-projector

以前的语法是带问号的,现在的语法是带星号的。

于 2019-10-14T18:32:20.893 回答