lua - 为什么当键是表时lua kv对是序列
问题描述
local a = {d = 1}
local b = {d = 2}
local test = {}
test[b] = true
test[a] = true
newtest = {
d = 1,
c = 2
}
for i in ipairs(test) do
print(i.d)
end
for k, v in pairs(newtest) do
print(k, v)
end
**那么为什么测试的打印是有序的,但不是每次都新测试?
解决方案
来自Lua 5.3 参考手册 6.1 基本功能:ipairs
ipairs(t)返回三个值(一个迭代器函数、表 t 和 0)以便构造
for i,v in ipairs(t) do body end
将遍历键值对
(1,t[1]), (2,t[2]), ...,
直到第一个 nil 值。
因此ipairs
不适用于测试,因为test
它不是从索引 1 开始的序列。它只有两个表键。
推荐阅读
- java - 如何在 Selenium 中找到占位符值
- python - 通过文件夹的晶须盒图
- bloomberg - pdblp:bulkref 开始日期覆盖
- python - 如何对具有相同前缀/后缀的列表进行分类?
- javascript - 根据可见内容更改背景色圈
- python-3.x - 无法找出模块的版本
- dialogflow-es - 操作 Dialogflow 意图/实体
- kubernetes-helm - 使 helm 停止跟踪命名空间资源作为发布的一部分,而不实际删除它
- r - object '...' not found in R Functions with lm -->> (Error in eval(predvars, data, env) : object '...' not found)
- c# - winforms未处理异常对话框上的继续按钮行为