print("Hello W3Cschool!");
function FLOCK1()
print("func1")
end
function FLOCK2()
print("func2")
end
--这里FLOCK0和FLOCK3都是未定义的
LIST = {
FLOCK0,
FLOCK1,
FLOCK2,
FLOCK3,
}
local i = 1
while i <= #LIST do
-------添加判断------------
if (LIST[i] == nil ) then
print("NULL")
print(#LIST)
break
end
-------结束判断------------
local func = LIST[i]
func()
end
print("------------end------------")
func()
print(#LIST)
如果不加这个判断,lua会直接报func()调用nil值,程序直接退出,打印不到 最后的print("-----------end---------------")
运行结果:

该代码示例展示了在Lua中如何处理可能未定义的函数调用,通过在循环中添加判断避免因调用nil值导致的程序崩溃。当尝试执行的函数为nil时,程序打印NULL并中断循环,确保后续代码仍能执行。
568

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



