Swift中使用for-in循环创建字典仅返回最后一个值如何解决
问题原因
你当前的写法是创建了单个字典,循环中反复对同一个键paramp_id赋值,新值会直接覆盖旧值,最终自然只会保留最后一次赋值的结果6。
解决方法
你需要声明一个用来存储字典的数组,每次循环生成一个新的字典存入数组即可,代码示例如下:
let items = [10, 9, 8, 7, 6] // 声明存储字典的数组 var resultArray: [[String: Any]] = [] for item in items { // 每次循环生成独立的新字典 let paramp = ["paramp_id": item] resultArray.append(paramp) } // 输出验证 for dict in resultArray { print(dict) }
运行后输出结果就和你预期的一致:
["paramp_id" : 10] ["paramp_id" : 9] ["paramp_id" : 8] ["paramp_id" : 7] ["paramp_id" : 6]
如果你追求更简洁的Swift风格写法,可以直接用map高阶函数实现,效果完全相同:
let items = [10, 9, 8, 7, 6] let resultArray = items.map { ["paramp_id": $0] }
内容的提问来源于stack exchange,提问作者oppakiyowo
相关产品推荐
相关产品推荐

