2017-01-04 163 views
-1

最后一行究竟是干什么的?什么是list.count(x => x * x> 1)在做什么?

val list = List(-1,0,2,3,5) 
list.count(x => x * x > 1) 

结果是3

+6

您是否查看了[count](http://www.scala-lang.org/api/current/scala/collection/immutable/List.html#count)的API文档(p:A =>布尔):智力)? –

回答

11

到底是什么最后一行在做什么?

它正在计算集合中元素的数量,对谓词x * x > 1产生true。元素是2,3和5,因此结果是3.

1

count()取决于谓词。为此谓词返回true的元素会被算作所以在这里你是简单的计数元素,其

n * n > 1 

您的列表中包含:-1,0,2,3,5

-1 * -1 = 1 
0 * 0 = 0 
2 * 2 = 4 > 1 
3 * 3 = 9 > 1 
5 * 5 = 25 > 1 

这为什么结果是3 :)