--mooreliu
function f1(o)
print("function f1 /n")
print("o.x="..o.x)
end
print("using lua/n")
dofile('db.lua')
bd.lua代码:
entry{
x=1,
y=2,
z=3,
}
print("in db.lua")上面这段代码会报错
lua: db.lua:1: attempt to call global 'entry' (a nil value)
db.lua中entry并不是一个table 而应该是一个chunk的入口点????
如果改成
function f1(o)
print("function f1 /n")
print("o.x="..o.x)
end
print("using lua/n")
entry=f1
dofile('db.lua')就会输出
using lua/n
function f1 /n
o.x=1
in db.lua
—————————————————————————————分割线——————————————————————
function f1(o)
print("function f1")
print("o.x="..o.x)
end
print("beginning of the program")<pre name="code" class="plain">
entry=f1dofile('db.lua')
db.lua的定义如下
entry={
x=1,
y=2,
z=3,
print"in table [entry]"
}
print("in db.lua")
<pre name="code" class="plain">beginning of the program
in table [entry]
in db.lua再割——————————*************************——————————如果db.lua只减去一个等号=
即变为
entry{
x=1,
y=2,
z=3,
print"in table [entry]"
}
print("in db.lua")输出变为
beginning of the program
in table [entry]
function f1
o.x=1
in db.lua
本文探讨了Lua编程中关于全局变量和表定义的常见错误。通过具体示例解释了如何正确地定义和调用函数及表,并展示了不同定义方式对程序执行的影响。
1750

被折叠的 条评论
为什么被折叠?



