【发布时间】:2019-04-01 22:00:15
【问题描述】:
在下面的代码摘录中,最后一条语句没有编译。但是,紧接在该语句之前的语句实际上可以编译。这个倒数第二个语句是我希望编译器将最后一个语句转换为的语句。我不明白为什么它不起作用。任何帮助表示赞赏。
trait ParameterizedBy[A, B] {
val parameterized: B
}
object ParameterizedBy {
implicit def toParameterized[A, B, C](p: ParameterizedBy[A, B])(
implicit f: B => C): C = f(p.parameterized)
}
trait Wraps[A] {
val wrapped: A
}
object Wraps {
implicit def toWrapped[A](w: Wraps[A]): A = w.wrapped
}
val p = new ParameterizedBy[String, Wraps[Int]] {
override val parameterized: Wraps[Int] = new Wraps[Int] {
override val wrapped = 6
}
}
ParameterizedBy.toParameterized(p)(Wraps.toWrapped) + 5
p + 5
【问题讨论】:
标签: scala generics implicit-conversion implicit