withoutLast method
Lazily returns all values without the last one.
Example:
[1, 2, 3].withoutLast(); // [1, 2]
[].withoutLast(); // [];
Implementation
Iterable<T> withoutLast() sync* {
var iter = iterator;
var hasFirst = iter.moveNext();
if (!hasFirst) {
return;
}
while (true) {
var value = iter.current;
var isLastOne = !iter.moveNext();
if (!isLastOne) {
yield value;
} else {
break;
}
}
}