Slide 79
Slide 79 text
@glaforge — Greach 2014
Lots of new methods for Iterables
!36
class
Counter
implements
Iterable
{
private
Integer
counter
=
0
Iterator
iterator()
{
[hasNext:
{
counter
<=
10
},
next:
{
counter++
}]
as
Iterator
}
}
assert
new
Counter().sum()
==
55
assert
new
Counter().min()
==
0
assert
new
Counter().max()
==
10
assert
new
Counter().count(2)
==
1
assert
new
Counter().count
{
it
%
2
==
0
}
==
6
assert
new
Counter().collectMany
{
[it
*
2]
}
==
[0,
2,
4,
6,
8,
10,
12,
14,
16,
18,
20]
assert
new
Counter().groupBy
{
it
%
2
==
0
?
'even'
:
'odd'
}
==
[even:[0,
2,
4,
6,
8,
10],
odd:[1,
3,
5,
7,
9]]