Это безумие или это Спарта?
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 из Integer, и я ожидаю, что у меня будет возможность выполнять милые маленькие поиски, такие как вышеупомянутые 3 запроса, все лаконично и лаконично. Но нет.
- Что такое идиоматический Groovy способ сделать это (посчитать количество элементов, где x! = Некоторый элемент)
- Почему это не работает?