云风的个人空间 : Lua 编程技巧[LuaTips]

首页 :: 索引 :: 修订历史 :: 你好, 18.119.139.50
你的足迹: » Lua 编程技巧
这是一个旧版本的LuaTips于2006-03-07 22:12:26.
Lua 的 5.1 版本已经正式发布。现在,我们应该把全部讨论放在这个版本上。

Hot! 应该尽量使用 local 变量而非 global 变量。这是 Lua 初学者最容易犯的错误。global 变量实际上是放在一张全局的 table 里的。global 变量实际上是利用一个 string (变量名作 key) 去访问这个 table 。虽然[InterWiki]Lua5 的 table 效率很高 ,但是相对于 local 变量,依然有很大的效率损失。local 变量是直接通过 Lua 的堆栈访问的。

Hot! 应该尽量用 do ... end 减少函数对 local 变量的可视范围。当定义一个 function 的时候,这个 function 向上所有可见的范围的 local 变量都会被作为 upvalue 和 function 本身绑定在一起,成为一个 closure 。太多的 local 变量虽然几乎没有速度损失,但是会带来额外的内存消耗。过多的内存消耗会过早引起 gc 。