Scala谓词

时间:2016-10-12 23:18:12

标签: scala

我是Scala的新手,我正在试图弄清楚谓词是什么以及使用它们的正确方法。我在网上找到的信息对我来说不是很清楚,或者它假设先前有关谓词的知识。有人可以解释它们是什么,并可能展示一些如何在Scala中使用它们的例子吗?

1 个答案:

答案 0 :(得分:11)

谓词是一个返回Boolean的函数。

例如,要检查整数是否均匀,我们可以定义函数isEven

scala> def isEven(i: Int) = i % 2 == 0
isEven: (i: Int)Boolean

它表现得像你期望的那样。

scala> isEven(2)
res1: Boolean = true

因此,您可以将其传递给像filter这样的函数,它接受一个返回布尔值的函数。此类型签名为p: (A) ⇒ Boolean),其中p是谓词的缩写。

scala> List(1,2,3,4,5,6,7,8,9,10).filter(isEven)
res2: List[Int] = List(2, 4, 6, 8, 10)

请参阅Scala School以获得良好的阅读效果。