我读了为什么 Java 的迭代器不是可迭代的?为什么枚举不是可迭代的?,但我仍然不明白为什么会这样:
void foo(Iterator<X> it) {
for (X x : it) {
bar(x);
baz(x);
}
}
没有成为可能。换句话说,除非我遗漏了什么,否则上面的内容可能是很好且有效的语法糖:
void foo(Iterator<X> it) {
for (X x; it.hasNext();) {
x = it.next();
bar(x);
baz(x);
}
}