lua - 打印语句不在 ipairs 循环中执行
问题描述
我定义了下表,其中包含在字符串索引下定义的表,如下所示:
local myTable = {
["str-1"] = {
id = 1,
value = "val"
},
["str-2"] = {
id = 2,
value = "val",
},
["str-3"] = {
id = 3,
value = "val",
}
}
for i, table in ipairs(myTable) do
print(i)
print(table)
end
我正在尝试遍历表的内容,但是print()
语句没有给出输出?我放置了一个打印语句来打印循环的当前索引和该位置的表。
解决方案
这是因为您试图ipairs()
在关联数组上使用循环。
相反,您可以使用pairs()
支持迭代的循环,其中表的索引是关联的:
for i, table in pairs(myTable) do
print(i)
print(table)
end
循环使用pairs()
键值对并与关联表一起使用,这也导致迭代不按顺序进行,而循环ipairs()
使用索引值对,其类似可用于使用数字索引定义的常规表。
推荐阅读
- angular - 错误错误:未捕获(承诺):cordova_not_available
- javascript - 替换过滤数组上的元素
- php - 使服务器可以理解 php 的循环,而不仅仅是回显代码
- windows - 如何在 Windows 10 上弹出 USB 驱动器(IOCTL_STORAGE_EJECT_MEDIA 已经不够用了)
- bash - 从文件时间戳创建目录,然后在 bash 中将文件移动到该目录
- django - 在哪里放置/如何覆盖 TokenAuthentication 迁移
- python - 如何从 CSV 文件的行中获取特定变量?
- python-3.x - 自动生成谷歌搜索查询
- html - 垂直滚动条是具有绝对位置的隐藏元素
- python - 无法使用模板标签