在第二次调用时无效的排序函数?

所以我有一个嵌套的表

t = { a={},b={},c={},d={}}

..等等

t 的每个项都有一个名为 F(integer) (a.F, b.F等) 的值

使用 lua table.sort() 一次将我的排序函数应用于 t :

local function sort(a,b)
    return a.F < b.F
end

调用一次排序是好的,但如果再次调用它,它会引发无效的排序顺序函数。

我不确定为什么会这样以及我必须做什么来解决。

信息 :

排序的值和项目不是 nil (我先用 assert() 确保)

点赞
用户6577543
用户6577543

solved, it was due to some reference to other items in table t and modifications to values in table t in the sort function. It did not like changing the tables contents inside the function.

已解决。原因是在排序函数中对表格 t 中的其他项目进行引用和修改表格 t 中的值。函数不喜欢改变表格内容。

2016-07-12 07:07:10