:どのように数値であることを、出力パラメータを必要とするようにScalaのトレイト:私はこのような特性にいくつかの番号を返す必要があり、一般的な関数を指定しようとしているあいまいな暗黙の値がエラー
import Numeric.Implicits._
trait ReturnsNumberResult {
def process[T : Numeric](): T
def output[T : Numeric](v: T)(implicit numeric: Numeric[T]): String
def runJob(): Any = {
output(process())
}
私がしようとしているときこの特性をコンパイルしますエラーが発生しました:
ambiguous implicit values: [error] both object BigIntIsIntegral in object Numeric of type scala.math.Numeric.BigIntIsIntegral.type [error] and object IntIsIntegral in object Numeric of type scala.math.Numeric.IntIsIntegral.type [error] match expected type Numeric[T] [error] output(process())
何が問題なのですか?
私はこの 'デフ出力[T:数値]信じる(V:T)を(暗黙の数値:数値[T])は'冗長です。 '[T:Numeric]'は、暗黙的なパラメータ宣言の文法的な砂糖です。 – jwvh
ありがとうございます。あなたは正しいです – user2975535