1
我使用的路徑依賴的類型按以下方式:在具體化,反映的實施斯卡拉相關產品無無謂蒙上
trait Schema {
type Repr
}
trait Mapping[A] {
val schema: Schema
def reify(repr: schema.Repr): A
def reflect(value: A): schema.Repr
}
object Mapping {
implicit def trivialMapping(s: Schema): Mapping[s.Repr] = new Mapping[s.Repr] {
override final val schema: Schema = s
override def reify(repr: schema.Repr): s.Repr = repr.asInstanceOf[s.Repr]
override def reflect(value: s.Repr): schema.Repr = value.asInstanceOf[schema.Repr]
}
}
注意asInstanceOf。我相信這些都毫無意義,因爲「模式」總是等於「s」。有沒有任何慣用的方式來實現這種模式,沒有類型轉換?第二個問題:爲什麼「s」可能與「模式」不同,或者scalac不知道價值平等有什麼細微之處?
哦..是的。 「s.type」的作品。謝謝! –