将谓词应用于序列的所有元素

时间:2016-10-14 08:00:02

标签: scala

如果列表中的所有元素都满足给定的谓词,我应该如何编写一个返回true的函数?

考虑下面的列表和任何谓词:

val set = List(3, 4, 5, 6, 10)

我认为我需要写一些类似的东西:

def checkListElements(list parameters... ): Boolean = true if condition meet else false

1 个答案:

答案 0 :(得分:7)

您不需要自己编写一个,您可以使用Iterator.forall

scala> var list = List(1,2,3,4,5)
set: List[Int] = List(1, 2, 3, 4, 5)

scala> list.forall(i => i % 2 == 0)
res0: Boolean = false

使用语法糖稍微短一些:

scala> list.forall(_ % 2 == 0) // Underscore will expand to i => i % 2 == 0
res2: Boolean = false