在我问我的问题之前,我进行了搜查。 我有两种方法来制作循环。我想知道两者是更优化的。也许你可以找到更好的。 目标是每1秒循环一次。这已经有效了。
感谢您及时解释。哪一个是最好的。在提出第三种选择之前。
我的方法1:
content=0
function loop1()
content=content+1
end
timer.Create("myloop",1,0,function() loop1() end)
我的方法2:
content=0
Table={
loop1=function()
content=content+1
end
}
timer.Create("myloop",1,0,function() Table:loop1() end)
编辑:
我的方法3:
content=0
timer.Create("myloop",1,0,function() content=content+1 end)
注: timer.Create = infinit循环中的0。 在timer.Create =启动函数,每秒1次。
该功能的内容通过对基础似乎没有帮助的东西进行了简化。但我感兴趣的是基本方法。
答案 0 :(得分:2)
将函数放在表中不会获得任何结果,并强制进行额外的表查找。
在timer.Create
调用中添加额外的包装(未命名)函数也不是一件有用的事情,因为它只是为进程添加了额外的函数调用开销。
使用locals总是比使用全局变量更好。
以下内容可能是最好的:
local content = 0
local function loop1()
content = content + 1
end
timer.Create("myloop", 1, 0, loop1)