这是疯狂,还是这是斯巴达?
groovy:000> b = [1,2,3,4]
===> [1, 2, 3, 4]
groovy:000> b.count { !it.equals(4) }
===> 0
groovy:000> b.count { !it == 4 }
===> 0
groovy:000> b.count { it == 4 }
===> 0
groovy:000> b.count { it == 1 }
===> 0
groovy:000> b[0]
===> 1
groovy:000> b.each { println it }
1
2
3
4
===> [1, 2, 3, 4]
groovy:000> print b.class
class java.util.ArrayList===> null
groovy:000> b.each { println it.class }
class java.lang.Integer
class java.lang.Integer
class java.lang.Integer
class java.lang.Integer
===> [1, 2, 3, 4]
groovy:000> 4.equals(b[3])
===> true
groovy:000>
我在这里遇到了“令人惊讶的期望”的情况。Groovy 告诉我,我有一个整数的 ArrayList,我希望我应该能够像上面 3 个查询一样简洁而甜美地进行可爱的小搜索。但不是。
- 执行上述操作的惯用 Groovy 方式是什么(计算 x != some element 的元素数量)
- 为什么这不起作用?