zax*_*xme 3 scala set partition
我正在研究如何根据第三组的内容将一组分成两组.我无意中偶然发现了这个解决方案:
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))
Run Code Online (Sandbox Code Playgroud)
签名partition如下:
def partition(p: A => Boolean): (Repr, Repr)
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释如何提供一个集合而不是一个函数吗?
提前致谢
一组s: Set[A] 是一个功能A => Boolean:任何价值a的A返回是否s包含a与否.
scala> val f: Int => Boolean = Set(1,2,3)
f: Int => Boolean = Set(1, 2, 3)
scala> f(1)
res0: Boolean = true
scala> f(4)
res1: Boolean = false
Run Code Online (Sandbox Code Playgroud)
def apply(elem:A):Boolean
测试此集合中是否包含某个元素.此方法相当于包含.它允许将集合解释为谓词.