Scala (疑似コード) で次の制約をどのようにエンコードしますか?
def foo(x: T forSome { type T has a Numeric[T] instance in scope }) = {
val n= implicitly[...] // obtain the Numeric instance for x
n.negate(x) // and use it with x
}
つまり、入力引数には型クラスのインスタンスが必要ですが、引数の型は気にしません。インスタンスを取得して引数で使用する必要があるだけです。
存在型である必要はありませんが、def
の署名で型パラメーターを避ける必要があります。
編集:明確にするために、これらの場合の標準的なアプローチ、つまり:
def foo[T: Numeric](x: T) = ...
メソッドに型パラメーターを追加する必要があるため、私には機能しません。
ありがとう。