次のような些細なことでも、なぜ暗黙的なものが見つからないのですか?
class Wrapper[+A](data: Vector[A]) {
def sum[B >: A](implicit num: Numeric[B]) = data.sum
}
num
手動で渡さなければコンパイルされませんdata.sum
次のような些細なことでも、なぜ暗黙的なものが見つからないのですか?
class Wrapper[+A](data: Vector[A]) {
def sum[B >: A](implicit num: Numeric[B]) = data.sum
}
num
手動で渡さなければコンパイルされませんdata.sum
Scala 仕様の §7.2 (107 ページ) には、implicit parameters are inferred after any type arguments are inferred
. これが問題だと思います。
Typer は、data.sum
-の最も具体的なパラメーターを推測し、スコープ内A
の暗黙的を探します。は不変であるため、Numeric[A]
彼はそれを で置き換えることはできません。Numeric[B]
Numeric