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

我正在从一个网站中挖掘信息,其中一个我必须做的事情是将页面给我的信息改变成另一种信息,并将该第二个信息转换为变量。然而,我根本想不出方法来做到这一点。

给定下面的表:

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”] 调用它。

现在是不是更有意义了?

原文链接 https://stackoverflow.com/questions/9323444

点赞
stackoverflow用户429232
stackoverflow用户429232

我觉得当你想匹配一个形容词时,你想在你的表格中查找并返回任何别名。

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

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

如果它在 page 中匹配了 "Adjective: big",它将打印 tall。这符合你的期望吗?关于“将其转换为表”这部分让我感到困惑。

2012-02-17 10:08:42
stackoverflow用户1205792
stackoverflow用户1205792

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

请查看以下示例:

-- 你需要初始化它
result = {}
result.tall = {}
result.little = {}

-- 插入元素,它们可以是其他表格或不是
table.insert(result.tall, '巨大')
table.insert(result.little, {s = '短'})

-- 所以你稍后可以访问它
for k, v in pairs(result.tall) do
    print(k, v)
end
2012-02-17 12:21:03
stackoverflow用户1211342
stackoverflow用户1211342

如果您不介意全局变量,可以使用全局环境表。

在获得您的值后(通过t[adj]),您可以创建如下表:

_G[t[adj]] = {}

然后您就可以随处访问到表 tall

2012-02-17 20:35:02