Dart 编程中的迭代器类


Dart 中的 Iterator 类是一种用于从对象中一次获取一个项目时的接口。

迭代器最初放置在第一个元素之前。在访问第一个元素之前,需要使用 moveNext 移动迭代器以指向第一个元素。如果我们到达对象的末尾,则 moveNext 返回 false,并且对 moveNext 的所有进一步调用也将返回 false。

需要注意的是,如果在迭代过程中更改对象中的任何内容,则行为是不确定的。

当我们希望在迭代过程中获取对象的当前元素时,我们会使用 Iterator 类的 current 属性。

让我们来看一个例子,其中我们有一个不同的水果列表,并且我们使用迭代器一个一个地迭代它们。

示例

考虑下面显示的示例 -

 实时演示

void main(){
   var fruits = ['apple','mango','banana'];
   var fruit = fruits.iterator;
   while(fruit.moveNext()){
      print(fruit.current);
   }
}

输出

apple
mango
banana

迭代器也可以用于映射,但由于我们不能迭代存储在映射中的键值对。我们将分别使用键对象和值对象上的迭代器。

示例

考虑下面显示的示例 -

 实时演示

void main(){
   var map = new Map();
   map['apple'] = true;
   map['banana'] = true;
   map['kiwi'] = false;
   var valuesIterator = map.values.iterator;
   while(valuesIterator.moveNext()){
      print(valuesIterator.current);
   }

   var keysIterator = map.keys.iterator;
   while(keysIterator.moveNext()){
      print(keysIterator.current);
   }
}

输出

true
true
false
apple
banana
kiwi

更新于:21-May-2021

864 次查看

开启你的职业生涯

完成课程并获得认证

开始
广告