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

自定义接收Map参数的Dart函数:实现Map值转列表输出

修正Dart提取Map值为列表的函数

原代码存在几个问题导致无法得到预期结果:

  • 函数调用与定义名称不匹配:main函数里调用getScores,但实际定义的函数是getScoresList
  • 函数未返回正确列表:原函数仅打印单个值,未将所有值收集为列表返回
  • 未处理map.entries.map生成的Iterable,没有转换为可返回的List

以下是修正后的完整代码:

void main() {
  Map<String, int> studentMarks = {
    'James': 98,
    'Peter': 95,
    'Alson': 77,
    'Deng': 89,
    'Diing': 74,
    'Madunt': 99,
    'Kwaje': 97
  };
  List<int> marks = getScores(studentMarks);
  print(marks); // 输出: [98, 95, 77, 89, 74, 99, 97]
}

List<int> getScores(Map<String, int> map) {
  // 提取Map所有值并转为List返回
  return map.values.toList();
}

关键修改说明:

  • 统一函数名称:将定义的函数改为getScores,与main中的调用一致
  • 明确类型标注:使用Map<String, int>和List<int>替代泛型Map,让代码更清晰且类型安全
  • 简化实现逻辑:直接用map.values.toList()提取所有值并转换为列表,比遍历entries更简洁高效
  • 修正返回值:函数返回List<int>类型,确保main函数能接收并打印正确结果

内容的提问来源于stack exchange,提问作者Lemi Agrey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:40:25