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

时间:2017-03-29 01:33:06

标签: input lua lua-table

我有一个包含这样内容的文本文件

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)给了我所有人的年龄,没有名字。它运行适合所有人,正如预期的那样,它在循环中(顺便说一下,为什么它不能在循环外工作?它在那里给我零)

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

1 个答案:

答案 0 :(得分:3)

也许你正在寻找这样的东西在循环中构建一个表:

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