下式给出:
implicit class WithRetType[T, U](x: T => U) {
type Ret = U
}
这样:
val foo = (_: Int) * 2
val x: foo.Ret = 3
的产率:
error: type Ret is not a member of Int => Int
val x: foo.Ret = ???
^
以下情况有效:
val foo = (_: Int) * 2
val fooR = new WithRetType(foo)
val x: fooR.Ret = 3
对于类型成员的访问,不要进行隐式转换吗?
答案 0 :(得分:1)
隐式转换不能用于访问类型成员。无论实现细节如何,这都可以看作规范中两个项目的逻辑结果:
因此两者不兼容:您不能在导致路径依赖类型的路径上进行隐式转换,因为转换本身不稳定,导致路径无效。