私はtoBarList関数がコンパイルされません。このコードScalaの暗黙のコンパイルエラー
case class Foo(x: Int)
case class Bar(y: Int)
object Foo {
implicit def toBar(f: Foo) : Bar = { Bar(f.x) }
implicit def toBarList(fl: List[Foo]) : List[Bar] = {fl.map{x: Bar => x}}
を書きました。
<console>:17: error: type mismatch;
found : Bar => Bar
required: Foo => ?
implicit def toBarList(fl : List[Foo]) : List[Bar] = { fl.map{x : Bar => x}}
ここではimplicitsシステムを使用しないでください。コンパイラは、関数がBarを期待しているがFooを渡しているというエラーがあることを検出する必要があります。今ではFooをBarに変換するスコープ内の暗黙的な関数が既に存在しているので、これを使用する必要があります。
なぜ、これはコンパイルされませんでしたか?
、 '{fl.map {X:バー=> B}}'、おそらくあなたは意味 '{fl.map {X: Bar => x}} 'または' {fl.map {b:Bar => b}} 'のようになります。 – dveim