Lua——对象排序

有时候可能有这样的需求:比如有很多个人,每个人的年纪不同,现在需要对所有人的年纪进行排序。代码如下:

Person = {name = "", age = 0}

function Person:new(o)
	o = o or {}
	setmetatable(o,self)
	self.__index = self
	return o
end

p1 = Person:new({name = "xiaolili",age = 22})
p2 = Person:new({name = "xiaoming",age = 12})
p3 = Person:new({name = "xiaozhang",age = 33})

--待排序的对象表
pertable = {p1,p2,p3}
--自己定义比较器
mycomp = function (x,y)
	return x.age < y.age
	end

table.sort(pertable,mycomp)

for k,v in pairs(pertable) do
	print(v.name,v.age)
end

输出结果:未排序的和排序之后的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章