首页 > 解决方案 > lua 在编译期间是否执行“require”?

问题描述

在 Lua 中调用“require”时,文件是简单地复制到当前文件中(类似于 C 中包含“*.h”)还是由 VM 在运行时完成?

标签: importluacompilationruntimerequire

解决方案


require作为一种语言,它不是 Lua 的一部分。它只是 Lua 标准库中的一个函数调用。并且所有函数调用都在运行时执行。

毕竟,require不加载文件;包系统的加载器可以。这些加载器可以在运行时更改,并且require此类更改后的所有调用都会反映它们。一些加载器基于环境变量,其值可以在Lua 程序的执行之间改变。脚本的每次执行,无论是否预编译,都会看到这些变化。


推荐阅读