您的位置:首页 > 编程语言 > Lua

lua 批量table.insert()出现全部是同一个值

2020-02-04 03:44 309 查看

lua 批量table.insert()出现全部是同一个值

这个问题出现在我的上一篇文章,“lua 非ipairs结构的table.sort()实现” 中
有兴趣的朋友可以去看看。链接
代码:

local a = {
[404] ="b",
[403] = "c",
[406] = "a",
[401] = "d"
}
local b = {}
local tempValue = {}
for k,v in pairs(a) do
--b[k] = v
tempValue.key = k
tempValue.value = v
table.insert(b,tempValue)
end
for k,v in pairs(b) do
print(k,v.key,v.value)
end

结果:

1	403	c
2	403	c
3	403	c
4	403	c
[Finished in 0.1s]

原因是我的tempValue定义在外部,而每次插入的tempValue并不是传值,而是传地址。将tempValue定义在循环内部即可。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
我是垃圾我不配 发布了14 篇原创文章 · 获赞 2 · 访问量 290 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐