我有一个包含这样内容的文本文件
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.如何构建这个程序来支持这个功能?
答案 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