也就是说,我正在寻找一个标准或准标准(Apache Commons,Guava等)库函数,它将有效地生成:
def f[T](oldSet: Set[T], newSet: Set[T]): (Set[T], Set[T], Set[T]) = {
val removed = oldSet.diff(newSet)
val kept = oldSet.intersect(newSet)
val added = newSet.diff(oldSet)
(removed, kept, added)
}
Run Code Online (Sandbox Code Playgroud)
显然这并不难写,而且我确信我可以毫不费力地做出或多或少的最佳实现,但对于我来说,对此的需求经常出现,我感到困惑,似乎没有要做一个众所周知的图书馆功能.我错过了什么,还是真的不存在?
编辑:对于那些指向Scala的标准交叉和差异函数及其运算符等价的人,我很欣赏这个想法,但我已经知道了这些,因为你可以从我在上面的例子中使用它们的事实中看到.我正在寻找一个标准库函数,它在函数上等效于上面定义的函数f()并且效率更高.