使用来自 Lua 输入文件的表格

我有一个文本文件,内容如下:

Jack 17
Will 16
Jordan 15
Elsie 16

你明白了,这是一个人名和他们年龄的列表。

我有一个程序可以将这个文件读入。像这样:

file = io.open("ages.txt")
for line in file:lines()
    do
        local name, age = line:match("(%a+) (%d+)")
        print(age) --不太是我想要的
    end
file:close()

print(age) 给我所有人的年龄,没有名字。它对每个人都运行,像我预期的那样,因为它在循环内部(顺便说一下,为什么它在循环外面不起作用?那里它给了我 nil)。

我想要做的是把它加载到一个表中。这样,如果我想知道 Jack 的年龄,我可以输入 print(Jack.age),它会给我 17。如何构建这个程序来支持这种功能?

点赞
用户6879826
用户6879826

也许你正在寻找这样的方式来在循环中构建一个表格:

file = io.open("ages.txt")
names = {}

for line in file:lines()
    do
        local n, a = line:match("(%a+) (%d+)")
        names[n] = {age = a}
    end
file:close()

以下是一个示例交互:

> print(names.Will.age)
16
> print(names.Jordan.age)
15
> print(names.Elsie.age)
16
2017-03-29 01:54:57