You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 12:35:22