Lua:从先前设置的变量创建一个表

时间:2012-02-17 05:37:45

标签: variables lua lua-table

我是来自网站的数据挖掘信息,我必须做的一件事就是将一条信息从页面提供给我的信息转换为另一条信息,并将第二条信息转换为变量。然而,我根本想不出办法做到这一点。

见下表:

t = {big = "tall", little = "short", fat = "wide", skinny = "thin"}

......当我这样做时,我怎么能这样做:

adj = string.match(page,'Adjective: (%w+)')

...它匹配big,我可以返回tall的值,但将其转换为表格?我尝试过使用一个不起作用的函数,我不想做t[adj]={}之类的事情,因为我不想创建t的子表。

我觉得它正盯着我,但我正在画一个空白。

编辑以澄清:

我知道如何获得我需要的形容词,或者如何显示大的价值等等。我所说的是能够做到这一点:

  1. 根据找到的形容词找到值。在这种情况下,找到big,值为tall
  2. 获取找到的值(再次,在这种情况下,tall)并将该值转换为自己的表。然后,我将拥有上面的表格,以及一个尚未填充的新表格,名为tall。这样,在我用信息填充之后,我可以通过tall["somekeyvalue"]
  3. 来调用它

    现在这样做有点意义吗?

3 个答案:

答案 0 :(得分:1)

听起来,当你匹配一个形容词时,你想在你的桌子上查找并返回你在那里的任何别名。

要在lua中执行此操作,您可以使用[]查找表格:

t = {big = "tall", little = "short", fat = "wide", skinny = "thin"}
adj = string.match(page,'Adjective: (%w+)')
print(t[adj])

如果它与page中的“形容词:大”匹配,则会打印tall。这是你想要的吗?关于“把它变成桌子”的部分让我感到困惑。

答案 1 :(得分:1)

如果您没有受到全局变量的困扰,可以使用全局环境表。

获得你的价值(通过t [adj])后,你可以像这样创建你的表:

_G[t[adj]] = {}

然后,您就可以访问 tall 到处

的表格

答案 2 :(得分:0)

由于我不知道如何在Lua中创建动态变量,我可以建议您创建一个表,它将是您创建的其他表的容器,因此您可以通过引用使用它,如“result.tall”这将是一个包含您添加到其中的元素的表。

看看这个例子:

-- you have to initialize it
result = {}
result.tall = {}
result.little = {}

--insert the elements that can be another tables or not
table.insert (result.tall, 'enormous')
table.insert (result.little , {s = 'short'})

-- so you can access it later
for k,v in pairs(result.tall) do
    print(k,v)
end