_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 文档中对 _LOADED
、LUA_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】:假设你没有打开任何个库,还有_G
、pairs
、ipairs
和newproxy
。
【讨论】:
pairs 和 ipairs 是全局可用的函数,而不是变量。不确定新代理。 所有函数都是值,并且经常存储在变量中,例如全局变量对。以上是关于_VERSION 是 Lua 5.1 中唯一剩下的全局变量吗?的主要内容,如果未能解决你的问题,请参考以下文章
lua 5.1 package.loadlib 和要求。 gcc 构建 windows dll