for 循环
使用标准 for 语句进行迭代操作。 如:
var message = StringBuffer('Dart is fun');
for (var i = 0; i < 5; i++) {
message.write('!');
}
为避免 JavaScript 中常见的陷阱,闭包在 Dart 的 for 循环中会捕获循环的 index 索引值。 请思考示例:
var callbacks = [];
for (var i = 0; i < 2; i++) {
callbacks.add(() => print(i));
}
callbacks.forEach((c) => c());
,输出的和期望一样是 0 和 1。 但示例中的代码在 JavaScript 中会连续输出两个 2 。
I用forEach() 方法迭代一个实现了 Iterable 接口的对象, , 如果不用当前计数值, 使用 forEach() 是非常棒的选择;
candidates.forEach((candidate) => candidate.interview());
for-in 进行迭代操作 iteration,实现了 Iterable 的类(如, List 和 Set)也同样支持使用 :
var collection = [0, 1, 2];
for (var x in collection) {
print(x); // 0 1 2
}