3

我正在尝试练习table.sorting和表格。我正在使用下表t{},并按table.sort每个名称的数值。t{}一旦原始表格被分类,我在打印原始表格时遇到问题a{}(我试图打印a{}只是为了清除它)。我将在哪里放置print (什么代码?)变成这样的代码?

对不起新手,初学者的问题。但是我在理解将print()线条插入何处function或编写代码以检查它们时遇到问题。我正在更改returnprint。我仍然无法掌握这部分。

感谢各位的帮助!

 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
4

1 回答 1

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
于 2013-10-03T14:16:36.693 回答