Bri*_*ian 13
谓词是一个返回a的函数Boolean
.
例如,要检查整数是否均匀,我们可以定义函数isEven
.
scala> def isEven(i: Int) = i % 2 == 0
isEven: (i: Int)Boolean
Run Code Online (Sandbox Code Playgroud)
它表现得像你期望的那样.
scala> isEven(2)
res1: Boolean = true
Run Code Online (Sandbox Code Playgroud)
所以,你可以将它传递给一个函数,就像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)
Run Code Online (Sandbox Code Playgroud)
查看斯卡拉学校的一些好读物.