【发布时间】:2014-06-27 17:29:51
【问题描述】:
我在掌握函数和表格方面遇到了可怕的事情。我之前问过一个与此类似的问题,但仍然无法使其正常工作。因此,我将更具描述性。但就在我认为我理解它的时候,我又完全把自己弄糊涂了。这是我想要完成的任务:
我有一个程序从外部来源接收其input。它需要采用input,并基本上“剖析”字符串以获得所需的信息。根据收到的信息,它进入下一个阶段或功能以执行适当的操作。例如:
输入被接收为NY345,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"}}
if a = 8, then b = 9 and c = "NVY"
我希望我的函数搜索(每个表的)k 并将其与输入进行比较。如果找到了,那么它会将另外两个局部变量设置为b 和c?
感谢您的帮助!
【问题讨论】:
-
在您的第一个 sn-p 中,我认为您的意思是
pairs(t)而不是pairs(seek)。 lua 的打印功能不会为您漂亮地打印表格。你需要自己走田野或买一台漂亮的桌子打印机。所以print(Brian)只是要打印表标识符。此外,您的person函数想要迭代(使用pairs)name表参数,而不是常量t表。 -
请一次询问一个问题。您将更有可能获得每个问题的答案,并且对于未来的读者来说问题将更加清晰。
-
问题 2 和 3 应该分开,它们本身并不清楚,并且与第一个问题完全不同。您必须澄清并举例说明。
-
好的。我很抱歉,并将创建另一个更适合问题 2 和 3 的主题。谢谢大家。
-
@EtanReisner 你是对的。那是一个错字,我的意思是
pairs(t)。谢谢你的收获。