Lua:初学者使用表格的函数-合理命名/检索嵌套表格中的表格。

我很难理解函数和表的概念。我之前提过一个类似的问题,但仍然在正确地运行代码方面遇到问题。所以我会更加详细地描述。但每次我认为我理解了,我仍然会混淆自己。这是我想要实现的:

我的程序从外部源接收input。它需要将该input“分解”以获取所需的信息。基于它接收到的信息,它会进入下一个阶段或函数来执行适当的操作。例如:

例如接收到inputNY345,de,M,9900

我创建了一个表,其中包含特定输入可以开始的所有不同方式,例如:

local t = {["NY"] = 5, ["MS"] = 7, ["HG"] = 10, ["JX"] = 14, ["UY"] = 20}

现在,我想使用一个函数来接收输入并在t {}中查找k,并使用它来收集其他变量……

function seek(input)
    for k, v in pairs (seek) do
        local info = string.match(input,k)
            if info then
                return {seekData = string.match(input,k..",(%d*),.*"), seekMult = seekData*v}
            end
    end
end

我离目标有多远?

如果上面的表“t = {...}”,并且其中包含其他表,我该如何命名“t = {...}”中的每个表并将其检索出来用于其他方程?例如,如果["a"]= 8,则其余该表应被利用?例如:

t = {["a"] = 2, ["b"] = 3, ["c"] = "IOS"},{["a"] = 8, ["b"] = 9, ["c"] = "NVY"},{["a"] = 1, ["b"] = 5, ["c"] = "CWQ"}}

如果 a = 8,则b = 9,c =“NVY”

我希望我的函数能够搜索每个表的k,并将其与输入进行比较。如果找到了,则它会将其他两个本地变量设置为bc

感谢您的帮助!

点赞
用户869951
用户869951

我只回答问题1,因为问题2和3应该是单独的问题。根据您没有提及的具体细节,有许多方法可以做到这一点,但假设您有一个像这样的表格t

t={
    {["a"] = 2, ["b"] = 3, ["c"] = "IOS"},
    {["a"] = 8, ["b"] = 9, ["c"] = "NVY"},
    {["a"] = 1, ["b"] = 5, ["c"] = "CWQ"}
}

然后一个函数,它接受一个a键值来查找并返回b和c:

function findItem(a, yourTable)
    for i,tt in ipairs(yourTable) do
         if tt.a == a then
              return i, tt.b, tt.c
         end
    end
end

使用这个,如果输入是k,那么

i, b, c = findItem(k, t)
if i == nil then
     print('could not find k')
else
     print('found k at index ' .. i)
end

findItem当然可以只返回找到的子表,也许您不需要索引:

function findItem(a, yourTable)
    for i,tt in ipairs(yourTable) do
         if tt.a == a then
              return tt
         end
    end
end
2014-05-12 03:11:45