试图检查我的工作,但如何打印()?

时间:2013-10-03 14:06:12

标签: sorting printing lua lua-table

我正在尝试一般地练习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

1 个答案:

答案 0 :(得分:2)

pairsByKeys实现为迭代器函数(如标准库提供的pairsipairs),因此您可以在通用for语句中使用它(使用默认的比较功能):

for k,v in pairsByKeys(t) do
    print(k, v)
end

输出:

Danny   10
Derek   1
Mary    15
Mike    3
Steph   8
Steve   4