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

輸出結果:未排序的和排序之後的

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