2016-10-14 109 views
0

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

考虑到文章任何断言:

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

我想我需要写类似于:

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

回答

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 
+0

谢谢!我怎么可以重写这个,如果单个元素满足条件,它将返回true。 – user2300867

+0

@ user2300867改为使用'Iterator.exists'。 –

+2

@ user2300867另一个有用的方法是阅读相应的API文档。 –