2017-01-04 135 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 :)