私は、Scalaの変更可能なツリーマップと不変のツリーマップとツリーセットの両方に便利なことを追加したいと思います。一般的には、ツリーセットとツリーマップの両方にimplicitsを追加する
まず(
ここ は私の試みですSorted
から)headOption
(GenTraversableLike
から)/lastOption
とfrom
/to
/until
を持ってのTreeMapとTreeSetのの少なくとも上限を定義しよう:type SortedCollection[A, Repr <: SortedCollection[A, Repr]] = collection.generic.Sorted[A, Repr] with collection.GenTraversableLike[A, Repr]
ライト私の使用:
implicit class RichSortedCollection[A, Repr <: SortedCollection[A, Repr]](s: SortedCollection[A, Repr]) { def greaterThanOrEqualTo(a: A): Option[A] = s.from(a).headOption def lessThan(a: A): Option[A] = s.until(a).lastOption def lessThanOrEqualTo(a: A): Option[A] = s.to(a).lastOption }
これは部分的にしか機能します:SortedSet#greaterThan
コンパイルしたがTreeMap#greaterThan
ません。どうすれば修正できますか?