を宣言するときclass Pair[T : Ordering]
は、 の暗黙的な値が必要ですOrdering[T]
。Ordering[Int]
以下の例では、 の暗黙的な値がどこから来ているのかを把握しようとしています。
ここでは暗黙的な値のように見えますscala.math.Ordering.Int
が、インポートされていないため、暗黙的な値はどこから取得されているのでしょうか?
class Pair[T : Ordering](val first: T, val second: T) {
def smaller(implicit ord: Ordering[T]) =
if(ord.compare(first, second) < 0) first else second
}
object Run extends App {
val p = new Pair[Int](2, 3)
}