为什么在 Lua 中使用 `local print = print`?

Why `local print = print` in Lua?

在学习第三方的Lua代码时,我在主脚本文件的顶部找到了

local insert = table.insert
local match = string.match
local gsub = string.gsub

我将这些块理解为快捷定义,但我也发现了

local assert = assert
local ipairs = ipairs
local print = print

最后这些指令的目的是什么?

访问本地更快。所以在某些情况下,将常用的东西放在本地以节省几个百分点的处理时间可能是有意义的。但在大多数情况下,您可以省去麻烦。特别是如果全局未被使用数千次。

读一读:

Why are local variables accessed faster than global variables in lua?

http://lua-users.org/wiki/OptimisingUsingLocalVariables

它在某些工作负载下提高了一点性能

原因: