我正在尝试一般地练习table.sort
和表格。我正在使用下面的表t{}
和table.sort
每个名称的数值。在将原始表t{}
分类为a{}
后,我在打印原始表格时遇到问题(我正在尝试打印a{}
只是为了清除它)。我会在哪里将print (
以及代码? )
放入这样的代码中?
对不起新手,初学者提问。但是我在理解将print()
行粘贴到function
或代码中的位置时遇到问题需要检查。我正在使用return
等更改print
。我仍然无法掌握这一部分。
我感谢帮助人员!
t = {
Steve = 4,
Derek = 1,
Mike = 3,
Steph = 8,
Mary = 15,
Danny = 10
}
function pairsByKeys (t,f)
local a = {}
for x in pairs (t) do
a[#a + 1] = x
end
table.sort(a,f)
local i = 0
return function ()
i = i + 1
return a[i], t[a[i]]
end
end
local timer = os.time()
repeat until os.time() > timer + 10
答案 0 :(得分:2)
pairsByKeys
实现为迭代器函数(如标准库提供的pairs
或ipairs
),因此您可以在通用for
语句中使用它(使用默认的比较功能):
for k,v in pairsByKeys(t) do
print(k, v)
end
输出:
Danny 10
Derek 1
Mary 15
Mike 3
Steph 8
Steve 4