我正在研究如何根据第三组的内容将一组分成两组。我无意中偶然发现了这个解决方案:
val s = Set(1,2,3)
val s2 = Set(4,5,6)
val s3 = s ++ s2
s3.partition(s)
res0: (scala.collection.immutable.Set[Int],scala.collection.immutable.Set[Int]) = (Set(1, 2, 3),Set(5, 6, 4))
partition
的签名如下:
def partition(p: A => Boolean): (Repr, Repr)
有人可以向我解释一下如何提供一套而不是一个功能吗?
提前致谢
答案 0 :(得分:6)
一组s: Set[A]
一个函数A => Boolean
:对于a
的任何值A
,您都会返回s
是否包含{ {1}}或不。{/ p>
a
如果你看documentation for .apply,你会看到
def apply (elem:A):Boolean
测试此集合中是否包含某个元素。此方法相当于包含。它允许集合 解释为谓词。