V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
amanohaneizz
V2EX  ›  职场话题

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

  •  
  •   amanohaneizz · 2020-08-24 16:05:02 +08:00 · 1457 次点击
    这是一个创建于 1587 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 之类的写法,属实给我整懵圈了。

    4 条回复    2020-08-24 16:49:22 +08:00
    GM
        1
    GM  
       2020-08-24 16:28:22 +08:00
    很常见的做法。
    这么做的好处或者说原因如下(仅举 pairs 作为例子):

    1. pairs 是个全局变量,每次调用的时候是通过查表进行的,导致速度会稍微慢一点。
    2. 由于它是个全局变量,人人都能修改,有可能有些人手误或者什么鬼原因,不小心赋值进去给改掉了,结果就会导致后续调用出错。为了避免这种问题,有些团队会在程序初始化完成后,禁止访问这类全局变量。
    GM
        2
    GM  
       2020-08-24 16:29:21 +08:00
    不过说实话,local 化全局变量得到的性能提升非常有限,基本上没什么影响的。
    amanohaneizz
        3
    amanohaneizz  
    OP
       2020-08-24 16:42:19 +08:00
    @GM
    学习了
    areless
        4
    areless  
       2020-08-24 16:49:22 +08:00 via Android
    不在顶部写 local,会有一堆下划线提示你~~纯粹为了消除下划线养成的习惯
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2848 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 14:06 · PVG 22:06 · LAX 06:06 · JFK 09:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.