使用本地 `foo = require "foo"` 比使用 `foo = require "foo"` 更快吗
Is it faster to use local `foo = require "foo"` rather than `foo = require "foo"`
如果 foo 是本地的,我的程序是否可以更快地访问存储在 foo 中的 functions/variables?
如果我在多个文件中使用 local foo = require "foo"
,foo.lua 会被加载多次吗?
是的。访问本地值会减少一次哈希查找,并且速度会更快。它是否会被注意到取决于你如何使用它 - 即如果访问此 table 的数量相对于你的程序所做的任何其他事情来说相对较高。
require
只会加载任何给定的模块一次。正如 docs 所说:
The function starts by looking into the package.loaded table to
determine whether modname is already loaded. If it is, then require
returns the value stored at package.loaded[modname].
如果 foo 是本地的,我的程序是否可以更快地访问存储在 foo 中的 functions/variables?
如果我在多个文件中使用 local foo = require "foo"
,foo.lua 会被加载多次吗?
是的。访问本地值会减少一次哈希查找,并且速度会更快。它是否会被注意到取决于你如何使用它 - 即如果访问此 table 的数量相对于你的程序所做的任何其他事情来说相对较高。
require
只会加载任何给定的模块一次。正如 docs 所说:
The function starts by looking into the package.loaded table to determine whether modname is already loaded. If it is, then require returns the value stored at package.loaded[modname].