【发布时间】:2016-09-22 09:18:57
【问题描述】:
我想为 Scala 中的可变和不可变 TreeMap 和 TreeSet 添加一些有用的隐式。
这是我的尝试:
-
首先尝试定义具有
headOption/lastOption(来自GenTraversableLike)和from/to/until(来自Sorted)的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 不编译。我该如何解决?
【问题讨论】:
标签: scala scala-collections scala-implicits