0
私のプロジェクト全体で型板を使用しようとすると、次の問題が発生しました。Scalaでtypeclass AとBを実装している要素のリスト
trait FooAble[T] { def fa(t: T): List[T] }
object Foo { def apply[T](t: T) = implicitly[FooAble[T]].fa(t) }
trait BarAble[T] { def fb(t: T): Double }
object Bar { def apply[T](t: T) = implicitly[BarAble[T]].fb(t) }
し、次の操作を行うことができるようにしたいと思います:Something
はA[]
とB[]
を実装する場合、我々が知らないよう
// xs contains elements of type A and B which are subclasses of the trait Something
def f(xs: List[Something]) = {
val something = xs.map(Foo)
val somethingElse = xs.map(Bar)
}
しかし、これは動作しないと、暗黙の実装が見つかりませんでした。リストxs
の要素がタイプメックFooAble
とBarAble
を実装するためには、何をする必要がありますか?
:あなたのタイプのクラスFooAble & BarAbleと機能
f
になるためのあなたのメソッドシグネチャを実装する暗黙オブジェクトを提供? –