lua - 为什么需要在很棒的 wm 模块中重新定义标准变量?

标签 lua awesome-wm

任何很棒的 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/

相关文章:

C++ 编译器错误递归模板

linux - 编辑 rc.lua 时的 Tabcompletion 和 docview

window - 很棒:alt + tab只能在两个应用之间切换

lua - 元表,尝试调用方法 'rename'(零值)

LuaJava 为 LuaState.pcall(a,b, error_function_index) 设置错误处理程序?

c - 为什么空栈的顶部是 lua 中的表?

lua - 如何将现有文件中的数据放入表中

configuration - 很棒的 WM 4 run_or_raise 函数

lua - 很棒的 wm/恶意小部件 : using a format function throws a bad argument error

awesome-wm - 客户端在启动时没有名称/类