Sorting 为什么在Lua中对表进行排序不';行不通
我有一段Lua代码,生成了一个错误,我不知道如何解决它Sorting 为什么在Lua中对表进行排序不';行不通,sorting,lua,lua-table,Sorting,Lua,Lua Table,我有一段Lua代码,生成了一个错误,我不知道如何解决它 ............................. local last_num = 0 local channelTable={} for num in channels.each_number() do -- channels.each_number() returns 1.number in each call channelTable[last_num] =num; last_num = la
.............................
local last_num = 0
local channelTable={}
for num in channels.each_number() do -- channels.each_number() returns 1.number in each call
channelTable[last_num] =num;
last_num = last_num +1;
end
table.sort(channelTable);
基于lua文档,我可以使用函数sort
对channelTable
中保存的数字进行排序。我得到的错误是:
attempt to index global 'table'
我该如何解决这个问题,或者应该实现冒泡排序?
谢谢你的提示 我认为问题可能在于您希望在循环的每次迭代中调用channels.each_number()。如果我没有弄错的话,我想它只有在程序第一次通过循环时才会被调用。我相信,在
for..in
循环中使用的任何东西都需要是一个表。所以我想问题是,您的表没有按照您希望的方式生成。尝试这样做:
print('number of items in channelTable = ' .. #channelTable)
如果结果为0,那么我所说的可能就是问题所在。要么您没有加载表库,要么您意外地覆盖了它
错误消息似乎被截断了:它应该说明索引失败的原因 您看到的错误表明表库不可用。这个核心库不太可能不是Lua环境的一部分,所以很可能您已经在代码的其他地方为表分配了一些内容。不,明确地说,当我在ARM9上运行的HTML页面上对表行进行注释时,代码的工作方式并不是我想要的。我得到的错误消息的其余部分只是关于lua文件的路径,如何加载表?顺便说一下,谢谢你的回答@引擎,消息末尾应该有
(一个xxx值)
!再次感谢你的支持,lib被明确拒绝了,我不知道,因为我没有开始这个项目!感谢您的回答,是否可以使用require语句显式加载它?据我所知,基本库是在编译时内置到Lua解释器中的,不能作为模块加载,因为没有库可以查找它们。但我可能完全错了——我从未使用过表库不可用的Lua环境。如果你尝试,你会得到什么:打印(表格);要查看名称所指的内容,可以单独运行一个简单的脚本来打印\G
表吗?这至少会告诉我们您的环境中是否有表
和其他标准lua功能可用。