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

Flutter技术问题:如何判断列表中是否存在指定索引

判断传入索引是否存在于Map键列表中的方案

针对你给出的selectInitialChapters函数,要避免索引越界问题,只需在访问keys[index]前,先判断索引是否处于有效范围内即可,具体步骤和代码示例如下:

核心判断逻辑

  • 先检查chapters是否为空,为空则直接执行无章节的默认处理(比如返回null或提示无内容)
  • 生成keys列表后,判断传入的index是否满足:index >= 0 且 index < keys.length
  • 仅当索引有效时,才获取对应的key和lesson;无效则执行异常/默认逻辑

修改后的代码示例

selectInitialChapters(int index){
  // 处理无章节的情况
  if (chapters.isEmpty) {
    return null; // 或其他无内容时的处理逻辑
  }
  final keys = chapters.keys.toList();
  // 判断索引是否在有效范围内
  if (index >= 0 && index < keys.length) {
    final key = keys[index];
    final lesson = chapters[key];
    // 后续处理lesson的逻辑
    return lesson;
  } else {
    // 索引无效时的处理,比如返回默认章节或提示
    return null;
  }
}

补充说明

  • 必须同时判断index >=0,防止传入负数索引导致的异常
  • 由于chapters会动态更新,每次调用函数都要重新获取keys并校验长度,不能使用固定值判断

内容的提问来源于stack exchange,提问作者Febin Johnson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:30:58