Lua 如何使add命令找到第一个变量的值,然后将第二个变量的值相加?
基本上是这样写的--“Add”我想让它查找我们在文本文件中用我们写下的名称设置的变量,然后查找我们用相同名称设置的另一个变量,例如:V:Var=12(nextline)V:Vr2=10(nextline)Add:Var,Vr2,然后它将添加设置的值Lua 如何使add命令找到第一个变量的值,然后将第二个变量的值相加?,lua,Lua,基本上是这样写的--“Add”我想让它查找我们在文本文件中用我们写下的名称设置的变量,然后查找我们用相同名称设置的另一个变量,例如:V:Var=12(nextline)V:Vr2=10(nextline)Add:Var,Vr2,然后它将添加设置的值 你在正确的轨道上。我要做的更改是将V:之后的内容作为键放在vars表中,并将=之后的内容设置为值,因此: vars = {} values = {} function open(file) lex(file) end function l
你在正确的轨道上。我要做的更改是将V:之后的内容作为键放在vars表中,并将=之后的内容设置为值,因此:
vars = {}
values = {}
function open(file)
lex(file)
end
function lex(file)
local data = io.open(file, "r")
for char in data:lines() do
--Print
if char:sub(1, 6) == "print:" then
print(char:sub(7))
end
--Integer
if char:sub(1, 2) == "V:" then
vars [#vars + 1] = char:sub(3, 5)
if char:sub(6, 6) == "=" then
values [#values + 1] = char:sub(7)
end
--print("NAME:"..vars [#vars]..", ".."VALUE:"..values [#values])
end
--Add
if char:sub(1, 4) == "add:" then
if char:sub(5, 7) == vars[#vars] then
if char:sub(8, 8) == "," then
if char:sub(9, 11) == vars[#vars] then
print(values[#values] + values[#values])
--print(vars[#vars])
end
end
end
end
end
--Debug purposes
--[[
for k, v in pairs(vars) do
print(k, v)
end
for b, a in pairs(values) do
print(b, a)
end
--]]
end
function run()
while true do
print("Open a file")
file = io.read()
print("File name:"..file)
print("")
lex(file)
print("")
end
end
run()
然后,您需要为add函数执行以下操作:
if char:sub(1,2) == "V:" and char:sub(6, 6) == "=" then
vars[char:sub(3,5)] = tonumber(char:sub(7))
end
至少,我想我知道你想要什么。如果不是,你会想更详细地了解你得到了什么以及你期望得到什么
function add_vars(one, two)
return vars[one] + vars[two]
end