假设我有一个具有两个类型参数的特征,例如
trait Qux[A, B]
以及另一个具有更高种类类型参数的特征,例如
trait Turkle[C[_]]
我希望能够用固定值替换 Qux
的类型参数之一,以便它可以用于参数化 Turkle
。
这是一个示例(在 Scala 中没有意义的代码!):
trait Baz[A] extends Turkle[Qux[A, _]]
有人知道如何实现这种效果吗?
最佳答案
Jason Zaugg 想出了最简洁的方法:
trait Baz[A] extends Turkle[({type x[a]=Qux[A, a]})#x]
IntelliJ 的 Scala 插件可以选择将其折叠为:
trait Baz[A] extends Turkle[x[a]=Qux[A, a]]
关于scala - Scala 中是否有可能 "curry"更高种类的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6247817/