【发布时间】:2019-07-04 17:49:24
【问题描述】:
有人可以解释一下为什么 scala 解决了最通用的隐式,而不管本地范围的隐式更具体吗?
例子:
import scala.math.ScalaNumber
type Serializer[T] = T => String
object SerializedOps{
implicit class AnyOps[T](t: T){
def serialize(implicit s: Serializer[T]) : String = s(t)
}
}
object Instances{
implicit val scalaNumber : Serializer[ScalaNumber] = _.toString + "_DEFAULT"
}
import SerializedOps._
import Instances._
implicit val bigDecimalCustom : Serializer[BigDecimal] = _.toString + "_CUSTOM"
val res: String = BigDecimal(100).serialize
//res: String = 100DEFAULT
为什么我不能在我的本地范围内定义一个新的更具体的隐式? scala 如何解析隐含?
【问题讨论】:
标签: scala implicit subtype scalac