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

Flutter中如何将Iterable的map结果存入List<int?>数组?是否需转int?

问题解答

1. 是否需要解析为int类型?

需要显式转换为int类型。原代码中f['id']的类型是dynamic,虽然打印结果看起来是int,但如果不做类型转换,后续使用List<int?>类型的arrayValues时可能出现类型安全问题——比如若f['id']实际是字符串或其他类型,会引发运行时错误。建议在map操作中完成类型转换:

// 若f['id']可能是字符串,用parse转换
Iterable<int> intoarray = listaMap.interests!.map((f) => int.parse(f['id'].toString()));

// 若确定f['id']本身就是int类型,直接强转
// Iterable<int> intoarray = listaMap.interests!.map((f) => f['id'] as int);

另外注意原代码里Iterable<void>的类型标注是错误的,应改为对应类型或让Dart自动推断。

2. 如何存入数组?一次性还是逐个存入?

推荐一次性存入,代码简洁且效率更高:

// 方式1:直接将Iterable转为List赋值
List<int?> arrayValues = intoarray.toList();

// 方式2:若arrayValues已初始化,用addAll批量添加
List<int?> arrayValues = [];
arrayValues.addAll(intoarray);

如果非要逐个存入,也可以用循环,但完全没必要:

List<int?> arrayValues = [];
for (var id in intoarray) {
  arrayValues.add(id);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:50:05