_VERSION 是 Lua 5.1 中唯一剩下的全局变量吗?

Posted

技术标签:

【中文标题】_VERSION 是 Lua 5.1 中唯一剩下的全局变量吗?【英文标题】:Is _VERSION the only global variable left in Lua 5.1? 【发布时间】:2010-09-13 21:16:38 【问题描述】:

对 Lua 5.0 文档中对 _LOADEDLUA_PATH_ALERT 等内容的引用感到困惑(我无法在 Lua 5.1 中使用),我发现所有这些内容都已被删除并且功能已被删除别处。我认为 Lua 5.1 中剩下的唯一一个全局变量是 _VERSION 是否正确?

【问题讨论】:

【参考方案1】:

文档似乎认为几乎就是这样......

_G 保存全局环境的全局变量(不是函数) (即_G._G = _G)。 Lua 本身可以 不使用这个变量;改变它 值不影响任何环境, 反之亦然。 (使用 setfenv 改变 环境。)

看起来也有 _PROMPT 和 _PROMPT2,但仅限于交互使用独立 lua 时:

如果全局变量 _PROMPT 包含一个字符串,那么它的值为 用作提示。同样,如果 全局变量 _PROMPT2 包含一个 字符串,它的值被用作 次要提示(在 不完整的陈述)。所以, 两个提示都可以直接改 在命令行或任何 Lua 中 通过分配给 _PROMPT 的程序。

【讨论】:

来自lua.org/manual/5.1/manual.html#pdf-_G,仅供参考。同一页面还提到了在独立解释器中使用 _PROMPT 和 _PROMPT2。【参考方案2】:

假设你没有打开任何个库,还有_Gpairsipairsnewproxy

【讨论】:

pairs 和 ipairs 是全局可用的函数,而不是变量。不确定新代理。 所有函数都是值,并且经常存储在变量中,例如全局变量对。

以上是关于_VERSION 是 Lua 5.1 中唯一剩下的全局变量吗?的主要内容,如果未能解决你的问题,请参考以下文章

文字字符串 [Lua 5.1]

LUA文件夹组织包

Lua:如何从_G中提取函数?

lua 5.1 package.loadlib 和要求。 gcc 构建 windows dll

luarocks install with lua5.1 and luajit to install lapis

无法读取Lua 5.1上的二进制文件的每个字节