私はscala 2.7から切り替えて、scala 2.8に注文し、注文を使用しています。かなり簡単に見えますが、もう少し冗長にできないかと思っていました。例えば:
scala> case class A(i: Int)
defined class A
scala> object A extends Ordering[A] { def compare(o1: A, o2: A) = o1.i - o2.i}
defined module A
次に TreeMap を作成しようとすると、エラーが発生します
scala> new collection.immutable.TreeMap[A, String]()
<console>:10: error: could not find implicit value for parameter ordering: Ordering[A]
new collection.immutable.TreeMap[A, String]()
^
ただし、オブジェクト A を順序付けとして明示的に指定すると、正常に機能します。
scala> new collection.immutable.TreeMap[A, String]()(A)
res34: scala.collection.immutable.TreeMap[A,String] = Map()
常に順序を明示的に指定する必要がありますか、それともより短い形式がありますか?
ありがとう