Lua循环洗牌列表
2022-1-4 19:52:38
收藏:0
阅读:232
评论:1
我有一个问题,在我的脚本中,如果我尝试遍历我的列表,输出结果完全是随机洗牌的
最小代码:
list = {
numbers = {
number1 = 1,
number2 = 2,
number3 = 3,
number4 = 4,
number5 = 5,
number6 = 6,
number7 = 7,
}
}
for k, numbers in pairs(list) do
for k, number in pairs(numbers) do
print(number)
end
end
输出:
5
7
2
3
4
6
1
我想到的唯一修复方法是删除number1到number7这些变量,直接输入数字
原文链接 https://stackoverflow.com/questions/70584331
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
Lua 表没有顺序。
此外,您正在使用内部使用
next
的pairs
。根据 Lua 手册:
在您的情况下,键具有数字组件,因此可以简单地在数字循环中创建它们。
local numbers = { number1 = 1, number2 = 2, number3 = 3, number4 = 4, number5 = 5, number6 = 6, number7 = 7, } for i = 1, 7 do print(numbers["number"..i]) end
对于其他非数字键,您必须使用第二个列出有序序列的表:
local numbers = { bob = 1, bill = 3, john = 2} local orderedKeys = { "bob", "john", "bill"} for k,v in ipairs(orderedKeys) do print(numbers[v]) end
数字循环将始终适用于任何整数键。
local numbers = { [0] = 0, [5] = 5, [3] = 3, [1] = 0, } for i = 0, 5 do if numbers[i] then print(numbers[i]) end end
仔细阅读以下内容:
像
ipairs
、长度运算符#
、table.sort
、table.concat
等这样的东西仅适用于序列。不贡献于序列的键将被这些函数忽略。您只能使用next或pairs分别循环遍历表中的所有键。但是,顺序不能保证。