以游戏排序需求为例,假如有个表,每个成员含有上次退出游戏时间(在线为-1),战斗力,等级3个变量。
排序需求:1.在线优先于离线 2.战力高优先于战力低 3.等级高优先于等级低 4.离线短优先于离线长
现通过lua table库中的table.sort来实现此需求。
Lua5.3参考手册关于table.sort官方描述:
table.sort()
- 原型:table.sort (table [, comp])
- 解释:对一个长度为
length=n
的数组table排序,也就是对tab_table[1]到tab_table[n]排序,如果参数comp
不省略,则它必须是一个函数,可以接收表tab_table
的两个元素,并且在第一个元素小于第二个元素时返回true
,其他情况返回false
,如果省略参数comp
,则Lua彼岸准运算符operator <
将会被使用。
代码实例:
local player = {}
player[1] = {lastLogout = os.time()-5001, power = 20000, level