遍历Dart库时出现迭代示例错误 问题

遍历Dart库时出现迭代示例错误 问题,dart,Dart,如何在参观Dart库时实现迭代示例 我明白这是一个必须补充的代码,但我如何补充它呢 类进程{ //表示一个进程。。。 } 类ProcessIterator实现迭代器{ @凌驾 进程获取当前=>。。。 @凌驾 bool moveNext()=>。。。 } //一个虚构的类,可以让您遍历所有 //过程。扩展[Iterable]的子类。 类进程扩展了IterableBase{ @凌驾 final Iterator Iterator=ProcessIterator(); } void main(){

如何在参观Dart库时实现迭代示例

我明白这是一个必须补充的代码,但我如何补充它呢

类进程{
//表示一个进程。。。
}
类ProcessIterator实现迭代器{
@凌驾
进程获取当前=>。。。
@凌驾
bool moveNext()=>。。。
}
//一个虚构的类,可以让您遍历所有
//过程。扩展[Iterable]的子类。
类进程扩展了IterableBase{
@凌驾
final Iterator Iterator=ProcessIterator();
}
void main(){
//Iterable对象可与for in一起使用。
for(进程中的变量进程()){
//对这个过程做点什么。
}
}
开发环境
  • 飞镖2
尝试→ 错误 我自己阅读并执行了该文档,但出现了以下错误

class ProcessIterator implements Iterator<Process> {
  @override
  Process get current => new Process();
  @override
  bool moveNext() => false;
}
类ProcessIterator实现迭代器{ @凌驾 Process get current=>new Process(); @凌驾 bool moveNext()=>false; } ->错误:“IterableBase”需要0个类型参数

致以最诚挚的问候,

两件事

1)
Process
在web上不可用,因此您的DartPad示例无法运行

2)
IterableBase
位于
dart:collection
中。别忘了导入那个

这段代码似乎适合我:

import 'dart:collection';

class ProcessIterator implements Iterator<int> {
  @override
  int get current => 0;
  @override
  bool moveNext() => false;
}

// A mythical class that lets you iterate through all
// processes. Extends a subclass of [Iterable].
class Processes extends IterableBase<int> {
  @override
  final Iterator<int> iterator = ProcessIterator();
}

main() {
  for (var thing in Processes()) {
    print(thing);
  }
}

参考@Kevin的答案,重写下面的代码

代码
你用的是哪个版本的飞镖?@Kevin谢谢你的建议。我添加了Dart的版本。
import 'dart:collection';

class ProcessIterator implements Iterator<int> {
  @override
  int get current => 0;
  @override
  bool moveNext() => false;
}

// A mythical class that lets you iterate through all
// processes. Extends a subclass of [Iterable].
class Processes extends IterableBase<int> {
  @override
  final Iterator<int> iterator = ProcessIterator();
}

main() {
  for (var thing in Processes()) {
    print(thing);
  }
}
Iterable<int> _myProcesses() sync* {
  yield 1;
  yield 2;
  yield 3;
}

main() {
  for (var thing in _myProcesses()) {
    print(thing);
  }
}
import 'dart:collection';

class Process {
  var foo = 'foo';
}

class ProcessIterator implements Iterator<Process> {

  int i = 0;

  @override
  Process get current => new Process();
  @override
  bool moveNext() {
    if(i++ < 5) {
      return true;
    } else {
      return false;
    }
  }
}

// A mythical class that lets you iterate through all
// processes. Extends a subclass of [Iterable].
class Processes extends IterableBase<Process> {
  @override
  final Iterator<Process> iterator = ProcessIterator();
}

void main() {
  // Iterable objects can be used with for-in.
  for (var process in Processes()) {
    print(process.foo);
  }
}
foo
foo
foo
foo
foo