【发布时间】:2019-08-20 13:44:58
【问题描述】:
我是 Lua 编程的新手,一直在阅读此文档:https://www.lua.org/spe.html。有人可以告诉我为什么我在运行以下代码 sn-p 时收到以下错误吗?:
n=0 -- counter of temporary variables
T={} -- table of temporary variables
function arithfb(a,b,op)
local i=op .. "(" .. a.name .. "," .. b.name .. ")"
if T[i]==nil then -- expression not seen yet
n=n+1
T[i]=create("t"..n) -- save result in cache
print(T[i].name ..'='..i)
end
return T[i]
end
setfallback("arith",arithfb) -- set arithmetic fallback
function create(v) -- create symbolic variable
local t={name=v}
setglobal(v,t)
return t
end
create("a") create("b") create("c") create("z")
while 1 do -- read expressions
local s=read()
if (s==nil) then exit() end
dostring("E="..s) -- execute fake assignment
print(s.."="..E.name.."\n")
end
lua: parser.lua:14: 尝试调用一个 nil 值(全局 'setfallback') 堆栈回溯: parser.lua:14: 在主块中 [C]:在?
【问题讨论】:
标签: lua