我是Scala的新手,我正在试图弄清楚谓词是什么以及使用它们的正确方法。我在网上找到的信息对我来说不是很清楚,或者它假设先前有关谓词的知识。有人可以解释它们是什么,并可能展示一些如何在Scala中使用它们的例子吗?
答案 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以获得良好的阅读效果。