4
比方說,我們有一個特點:類型參數的案例類使用特質W/Implicits
trait ThingToThing[-A, +B] { def apply(a: A): B }
及其配套對象:
object ThingToThing {
implicit object StringToBoolean extends ThingToThing[String, Boolean] {
override def apply(a: String): Boolean = a.toBoolean
}
}
和案例類:
case class Thing[A](a: A) {
def to[B](implicit thing: ThingToThing[A, B]): B = thing(a)
}
這使我可以做到以下幾點:
Thing("true").to[Boolean]
res0: Boolean = true
這是所有罰款和花花公子,我可以這樣做:
case class MyClass(ss: Seq[String]) {
def doStuff(s: String) = Thing(s).to[Boolean]
}
但想什麼,我做的,但是,是這樣的:
case class MyClass[B](ss: Seq[String]) {
def doStuff(s: String) = Thing(s).to[B]
}
但是,這錯誤:
error: could not find implicit value for parameter thing: ThingToThing[String,B]
有沒有一種方法可以在我的MyClass
中使用類型參數?
**不要被抓住玩具的例子,將字符串轉換爲布爾值;我只是用它作爲一個簡單的例子來說明問題。
太棒了!非常感謝! – user451151