为什么在 Lua 中排序 table 不起作用

why does sorting a table in Lua doesn't work

我有一段 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 = last_num +1;
 end    
 table.sort(channelTable);

根据 lua 文档,我可以使用函数 sortchannelTable 中保存的数字进行排序。我得到的错误是:

attempt to index global 'table'

知道如何解决这个问题,或者应该实施冒泡排序吗? 感谢任何提示!

我认为问题可能是您希望在循环的每次迭代中调用 channels.each_number()。如果我没记错的话,我认为它只会在程序第一次进入循环时被调用。我相信,无论您在 for..in 循环中使用什么,都必须是 table。所以我想问题是你的 table 没有按照你想要的那样生成。尝试这样做:

print('number of items in channelTable = ' .. #channelTable)

如果结果为0,那可能就是我说的问题了

要么您没有加载 table 库,要么您不小心覆盖了它。

错误消息似乎被截断了:它应该说明索引失败的原因。

您看到的错误表明 table 库不可用。这个核心库不太可能不是您的 Lua 环境的一部分,因此您可能在代码的其他地方为 table 分配了一些内容。