使用由输入文件 Lua 制作的 table

Using a table made from input file 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) --Not exactly what I want
    end
file:close()

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

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

也许您正在寻找类似这样的东西来在循环中构建 table:

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