來源:
http://seacatcry.pixnet.net/blog/post/37968758-%E3%80%90ep7%E3%80%91lua-library
說明:
table.sort 只能排序索引型態的table,在上列網頁找到將字典型態排序的方
法,大體上是將鍵值置入新的索引型態table,再用table.sort排序這個table,最
後遍歷這個table,依序將原table的內容印出來。
內容:
function pairsByKeys (t, f)
local a = {}
for n in pairs(t) do table.insert(a, n) end --t陣列的鍵複製到a陣列
table.sort(a, f) --排列鍵值
local i = 0 -- iterator variable
local iter = function () -- iterator function
i = i + 1
if a[i] == nil then return nil
else return a[i], t[a[i]] --a陣列的值a[i],t陣列的值t[a[i]]
end --a[i]是否存在
end --iter
return iter
end --pairsByKeys
for name, line in pairsByKeys(lines) do
print(name, line)
end