scala - 测试中*的含义是什么?

标签 scala scala-cats kind-projector

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

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 )

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

最佳答案

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

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

以前的语法带有问号,当前的语法带有星号。

关于scala - 测试中*的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58378267/

相关文章:

scala - Spark-单调增加的id在数据帧中没有按预期工作?

scala - 什么是投影仪

scala - 类型参数子句中的广义约束?

regex - Scala 正则表达式同时正面和负面回顾

scala - Spark SQL 更改数字的格式

scala - 如何使用 Cats IO monad 实现 if-else 逻辑?

scala - 为什么此代码取决于 `withFilter` 或者这是一个错误?

java - 如何检测 Scala 源代码中对 Java 类的依赖?

Scala,ZIO - 如何将 ZIO 转换为 Task 并获得结果?