使用由输入文件 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
我有一个文本文件,内容如下
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