【发布时间】:2021-02-27 18:54:53
【问题描述】:
我有一个流,它产生这样的字符串:
'apple'
'orange'
'banana'
当我收听 Stream 时,我想按照产生的顺序为结果分配从 1 到 n(Stream 长度)的数字,如下所示:
1: 'apple'
2: 'orange'
3: 'banana'
最好的方法是什么?
由于没有像 Python 中那样的 enumerate() 函数,所以到目前为止我的尝试非常糟糕:
内部流定义
int n = 0
await for (var nextString in originStream) {
++n;
yield [n, nextString];
}
何时调用流
myStream.transform(enumerateFunc)
List enumerateFunc(String myStr){
return [n, myStr];
}
我收到了为此创建一个类的建议。但我不想创建一个类来简单地将数字按事件发生的顺序分配给 Stream 事件。
有没有更好的方法来做到这一点?
【问题讨论】:
-
你真的不应该使用
List作为一个元组,因为你会丢失类型信息。相反,为您的目的创建一个类并从中返回对象。