2

次のような些細なことでも、なぜ暗黙的なものが見つからないのですか?

class Wrapper[+A](data: Vector[A]) {
  def sum[B >: A](implicit num: Numeric[B]) = data.sum
}

num手動で渡さなければコンパイルされませんdata.sum

4

1 に答える 1

2

Scala 仕様の §7.2 (107 ページ) には、implicit parameters are inferred after any type arguments are inferred. これが問題だと思います。

Typer は、data.sum-の最も具体的なパラメーターを推測し、スコープ内Aの暗黙的を探します。は不変であるため、Numeric[A]彼はそれを で置き換えることはできません。Numeric[B]Numeric

于 2012-08-14T08:19:23.670 に答える