`
445822357
  • 浏览: 739025 次
文章分类
社区版块
存档分类
最新评论

lua全局变量

 
阅读更多

全局变量不需要声明,虽然这对一些小程序来说很方便,但程序很大时,一个简单的拼写错误可能引起bug并且很难发现。然而,如果我们喜欢,我们可以改变这种行为。因为Lua所有的全局变量都保存在一个普通的表中,我们可以使用metatables来改变访问全局变量的行为。

第一个方法如下:

setmetatable(_G, {

__newindex = function (_, n)

error("attempt to write to undeclared variable "..n, 2)

end,

__index = function (_, n)

error("attempt to read undeclared variable "..n, 2)

end,

})

这样一来,任何企图访问一个不存在的全局变量的操作都会引起错误:

> a = 1

stdin:1: attempt to write to undeclared variable a

分享到:
评论

相关推荐

    roblox-global-variable-enumerator:列出所有RBX.Lua全局变量

    列出所有RBX.Lua全局变量 解释 很久以前,您可以执行以下操作以获取ROBLOX Lua中所有全局变量的列表: for index, value in pairs ( getfenv ( 0 )) do print (index) end 但是,开发人员开始修改全局环境以获得...

    十分钟Lua脚本系统入门

    通信:Native代码中访问Lua全局变量 解决方案包含以下工程(VS2010) HelloLua:一个演示使用Lua的TestCase. lualib:静态库(包含run-time虚拟机和通信API) luac:编译器 lua:一个交互式解释器工具,支持脱离宿主...

    Lua脚本在游戏引擎中的应用

    共用Lua全局变量、在引擎中引用脚本函数和在Lua中引用引擎函数的功能,以 达到数据共享的作用,从而建立了把Lua系统引入游戏引擎的模式。文章最后模 拟了一个仿真的游戏环境,分析了引擎与Lua脚本在游戏中各个模块的...

    lua 崩溃获取各个堆栈中局部变量 上层变量 全局变量,方便定位问题

    lua 崩溃获取各个堆栈中局部变量 上层变量 全局变量,方便定位问题,可以用于cocos2d引擎,测试demo,直接lua trace.lua就可以运行看效果

    Lua教程(十): 全局变量和非全局的环境

    主要介绍了Lua教程(十): 全局变量和非全局的环境,本文讲解了老的全局变量环境和Lua5中新的非全局环境相关知识,需要的朋友可以参考下

    Lua–变量

    Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。 局部变量的作用域为从声明位置开始到所在语句块结束。 变量的默认值均为 nil。 a = 5 -- 全局变量 local b = 5 -- 局部变量 ...

    Lua 变量

    Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。 局部变量的作用域为从声明位置开始到所在语句块结束。 变量的默认值均为 nil。 实例 -- test.lua 文件脚本 a = 5 -- ...

    【Unity】 HTFramework框架(三十三)XLua热更新

    索引XLua热更新简介使用XLua热更新创建XLua开发环境运行XLua逻辑Lua入口解析编写自己的Lua脚本加载自定义Lua代码在Lua中访问框架代码C#中获取Lua全局变量C#中设置Lua全局变量运行时检视面板 XLua热更新简介 XLua是一...

    最好用 Lua编辑器

    欢迎下最新版本 ... [1] 提供自定义关键字 [2] 提供自定义接口自动提示 [3] 提供关键字,接口颜色自定义 [4] 提供Lua语法检查和编译,调试 ...[5] 接口快速定位 ...增加 全局变量和接口自动定位定义的地方

    实用的utility function.zip

    以delimiter截取字符串输出table.lua 将全局变量替换其value.lua 判定return是否包含某匹配字串.lua 将数组元素转成csv格式.lua 判断table是否为空nil.lua 获取table中最大数.lua 去除字符串首位空格.lua 获得...

    最好用的 Lua编辑器

    最新Lua编辑器 [1]提供编写模板和提示 ... 修正:*.lpr文件路径问题 增加 local function(局部接口)自动提示 增加 global function(全局接口)自动提示 修正: 增加 接口自动定位定义的地方 修正: 删除全局变量的自动提示

    strict:一个 Lua 包,用于检测未声明变量的读取和全局变量的创建

    严格的一个 Lua 包,用于检测未声明变量的读取和全局变量的创建。

    window系统 Lua脚本语言编译器

    window系统 Lua脚本语言编译器,放在全局变量上就可以使用,在window系统环境下,必须配置才能使用

    C++封装对Lua的调用(简单好用)

    基于C++对LUA调用的简单明了封装: 1.支持全局变量。 2.支持Lua函数调用。 3.支持table表的多重嵌套访问。

    Lua in Android

    在 Android 中使用 Lua 脚本,包含Lua脚本,全局变量,函数调用,Lua调用Java对象例子,有需要的下载

    Lua中文教程(pdf版)

    1.2 全局变量...7 1.3 词法约定...7 1.4 命令行方式.................7 第2章类型和值9 2.1 Nil..............9 2.2 Booleans....9 2.3 Numbers...10 2.4 Strings......10 2.5 Functions.12 2.6 Userdata ...

    Lua虚拟机指令集介绍

    Lua虚拟机指令集介绍: Lua指令基础,lua二进制程序块,指令记法,加载常量,Upvalue和全局变量,表指令,算术和字符串指令,跳转和调用,关系和逻辑指令,循环指令,表创建,创建和结束闭包等

    luacheck:用于Lua代码的整理和静态分析的工具

    检查的大多数方面都是可配置的:有一些选项用于定义与项目相关的自定义全局变量,选择一组标准全局变量(Lua标准库的版本),用于按相关变量的类型和名称过滤警告等。可以使用这些选项。在命令行上,以Lua注释的...

Global site tag (gtag.js) - Google Analytics