把内置函数自己换个名字声明,然后调用时写自己声明的变量是什么操作?

2020-08-24 16:05:02 +08:00
 amanohaneizz

local _pairs = pairs

local _ipairs = ipairs

local _table_insert = table.insert

local _table_concat = table.concat

local _table_sort = table.sort

local _table_remove = table.remove

local _log = log

写 lua 脚本,因为玩法类似就 copy 了几个以前代码的部分逻辑,前端调试报错,一看里面一堆_table_insert 之类的写法,属实给我整懵圈了。

1455 次点击
所在节点    职场话题
4 条回复
GM
2020-08-24 16:28:22 +08:00
很常见的做法。
这么做的好处或者说原因如下(仅举 pairs 作为例子):

1. pairs 是个全局变量,每次调用的时候是通过查表进行的,导致速度会稍微慢一点。
2. 由于它是个全局变量,人人都能修改,有可能有些人手误或者什么鬼原因,不小心赋值进去给改掉了,结果就会导致后续调用出错。为了避免这种问题,有些团队会在程序初始化完成后,禁止访问这类全局变量。
GM
2020-08-24 16:29:21 +08:00
不过说实话,local 化全局变量得到的性能提升非常有限,基本上没什么影响的。
amanohaneizz
2020-08-24 16:42:19 +08:00
@GM
学习了
areless
2020-08-24 16:49:22 +08:00
不在顶部写 local,会有一堆下划线提示你~~纯粹为了消除下划线养成的习惯

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/700986

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX