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