一个关于lua的简答问题 请进来看看

hellodudu 2009-08-11 12:09:09
Role_Table = {}
Role_Table[100] = {id = 100, Point = 10}
Role_Table[20] = {id = 20, Point = 15}
Role_Table[3] = {id = 3, Point = 45}

然后对这个表排序
table.sort(Role_Table, function(a,b) return a.Point < b.Point end)

再然后我想取出表中Point最大的记录
local record = table.remove(Role_Table)
但是这次取出来的内容是空 这是为什么?
...全文
100 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiweifu 2009-08-14
  • 打赏
  • 举报
回复
帮顶
fibbery 2009-08-12
  • 打赏
  • 举报
回复
看来楼主需要自力更生了,呵呵
蓝冰blue 2009-08-12
  • 打赏
  • 举报
回复
table.sort只对连续的数组起作用。
实现代码类似于
for i = 1, table.getn(Role_Table) do
--排序操作
end

你例子里的下标为3、20、100,table.getn(Role_Table)结果为0。其实是没做过排序操作。之所以显示出来的结果排序正确,是因为原始顺序就是如此。可以修改a.Point < b.Point 为 a.Point > b.Point 就能发现顺序没变
DarkChampion 2009-08-11
  • 打赏
  • 举报
回复
Lua我也不太熟
查看Role_Table的大小
=#Role_Table

输出居然是0
但是查看了一下
table.foreach(Role_Table, print)

可以显示,而且排序好像没有影响
100 table: 003CB970
20 table: 003CBB50
3 table: 003CBAF8

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧