如何在Dart生成器中途根据指定条件终止执行?
在Dart sync*生成器中中途终止执行的方法
在Dart的sync*生成器里,你可以直接用return语句中途终止执行——一旦执行到return,后续的yield和代码都会停止运行,刚好满足你按需终止的需求。
修改你的示例代码如下:
Iterable<int> fn sync*(...) { yield 1; yield 2; if (someCondition()) { return; // 满足条件时终止生成器,不再生成后续值 } yield 3; if (someCondition2()) { return; } yield 4; if (someCondition4()) { return; } yield 5; }
如果需要在终止前执行清理逻辑,直接把代码放在return之前即可,比如:
if (someCondition()) { // 执行清理操作,比如释放资源 print("生成器终止前的清理步骤"); return; }
内容的提问来源于stack exchange,提问作者somebody4
相关产品推荐
相关产品推荐

