任何很棒的 wm 模块都是从将标准变量重新定义为本地开始的。类似的东西
local table = table
local string = string
local tostring = tostring
它有什么作用?删除此行后,所有代码仍然可以正常工作。
最佳答案
这纯粹是一个优化的事情。局部变量比全局变量读/写更快。这部分是因为全局变量是哈希表查找(例如 foo
=> _G["foo"]
),而局部变量是 VM 寄存器查找。因此,对于将要使用全局变量的模块通过局部变量对其进行别名的情况并不少见。
对于您的代码,除非您知道某些东西会被称为大量并且会成为瓶颈,否则我不会打扰这种技术。 Lua 不是 C。你在交易性能是为了简洁明了。不要交易回来until you know you have to .
关于lua - 为什么需要在很棒的 wm 模块中重新定义标准变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22772169/