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

use*_*867 0 scala

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

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

val set = List(3, 4, 5, 6, 10)
Run Code Online (Sandbox Code Playgroud)

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

def checkListElements(list parameters... ): Boolean = true if condition meet else false
Run Code Online (Sandbox Code Playgroud)

Yuv*_*kov 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
Run Code Online (Sandbox Code Playgroud)

使用语法糖稍微短一些:

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

  • @ user2300867另一个有用的方法是阅读相应的API文档. (2认同)