`
7090
  • 浏览: 278472 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lua闭包

    博客分类:
  • Lua
 
阅读更多
Lua中的闭包函数,如果想在外面调用,必须在闭包的母函数执行后才能正常调用,否则改函数引用为空

_G.UIFather = {}

function UIFather:New(prefab)
    local t = { ["prefab"] = prefab }
    setmetatable(t, self)
    self.__index = self
    return t
end

function UIFather:RegisterCloseEvent(instance, func, ...)
	function UIFather:OnEvent(event,param)

	end
end

function UIFather:OnEnable(instance)
	
end

function UIFather:OnDisable(instance)
	
end


_G.A = _G.UIFather:New()

print("母函数调用之前" ,A["OnEnable"], A["OnEvent"],UIFather["OnEvent"])

UIFather:RegisterCloseEvent()

print("母函数调用之后" ,A["OnEnable"], A["OnEvent"],UIFather["OnEvent"])


调用结果为:
母函数调用之前	function: 0054CDF0	nil	nil
母函数调用之后	function: 0054CDF0	function: 0054CE70	function: 0054CE70
[Finished in 0.1s]
分享到:
评论

相关推荐

    lua闭包的理解以及表与函数的几种表达方法

    ### Lua闭包的理解 #### 闭包的概念 在Lua中,闭包是一个非常重要的概念,尤其是在函数式编程中。闭包本质上是由一个函数及其相关的引用环境组成的组合体。这里的“引用环境”指的是函数能够访问的那些变量,这些...

    LUA中的闭包(closure)浅析

    LUA语言中闭包(closure)的概念是该语言的一个重要特性。本文将通过实例深入探讨LUA中的闭包,并对其工作原理进行详细解析。 首先,LUA中的函数是第一类值(First-Class Value),这意味着它们和其它数据类型一样,...

    lua5.2全中文参考手册

    - **C闭包**:介绍了如何在C语言中创建和操作Lua闭包,以使用Lua环境。 - **注册表**:Lua提供了一个注册表来存储全局变量,可以用来实现C和Lua之间的数据交换。 - **C中的错误处理和yields处理**:展示了如何在...

    云风《Lua源码欣赏》1积分

    第五章讨论函数与闭包的概念,包括函数原型、Upvalue的含义以及闭包的构造,同时区分了Lua闭包和C闭包,并对轻量级C函数进行了说明。 第六章介绍了协程及函数的执行机制,包含栈与调用信息的处理、线程执行与中断的...

    c++ lua封装库包含演示和库代码

    2. Lua调用C++:利用lua_pushcclosure注册C++函数为Lua闭包,然后在Lua中调用。 3. C++调用Lua:使用lua_pcall执行已加载的Lua函数,注意处理可能的错误。 4. 数据类型转换:C++和Lua之间的数据转换需要特别注意,...

    lua游戏开发实践 光盘C++源码

    - Lua闭包和元表:掌握这两项高级特性,能够编写更灵活的代码。 - 性能优化:学习如何在Lua中编写高效的代码,避免不必要的性能开销。 通过以上内容,你应该对Lua游戏开发有了全面的了解。提供的C++源码是一个...

    Lua学习笔记之函数、变长参数、closure(闭包)、select等

    本文将介绍Lua中函数的基础用法、变长参数、closure(闭包)、以及select函数的使用,并结合代码实例进行详细说明。 首先,Lua函数支持多返回值。例如,在使用`string.find`函数查找子串时,该函数会返回两个值,...

    readinglua.pdf

    - **Lua 闭包**:如何创建和使用 Lua 闭包。 - **C 闭包**:结合 C 语言实现的闭包。 - **轻量 C 函数**:一种特殊类型的 C 函数,用于快速调用。 **1.6 协程及函数的执行** **6.1 栈与调用信息** - **数据栈**:...

    完整的带详细用法说明的Lua入门语法资料

    完整的带详细用法说明的Lua入门语法资料。 ...到lua使用父类方法,lua闭包说明,多lua脚本调用运行等。 其中的lua脚本,在发布前测试使用过,不担心是旧语法方法功能, 全部可直接拿来运行使用。

    lua-opendkim:Lua 绑定到 libopendkim

    除了为 API 提供全面的绑定之外,该模块还以一种方式实现,以简化使用可屈服 Lua 闭包作为回调挂钩的方式,而无需任何技巧或依赖于运行时环境。 这允许使用您选择的任何 DNS 实现和事件循环。建造要求GNU 制造...

    Lua返回一个Closures函数实例

    这段代码展示了Lua闭包的两个典型应用场景:创建携带参数的闭包函数,并用闭包函数访问外部局部变量;以及利用闭包来实现迭代器的功能,方便地遍历表中的元素。在Lua编程实践中,闭包是一种非常有用的工具,它提高了...

    介于许多小伙伴 打开lua官网很慢,下载lua源代码很慢,传一个lua5.4.6最新版本的源代码

    6. `lfunc.c`: 函数表示和闭包处理。 7. `lgc.c`: 垃圾回收算法的实现。 8. `llex.c`: 词法分析器,将输入分解为令牌。 9. `lparser.c`: 语法解析器,构建抽象语法树(AST)。 10. `lstate.c`: Lua状态管理,包括...

    lua程序设计及lua中文手册

    闭包是Lua中实现函数式编程的重要概念,它可以访问并修改外部环境的变量。 4. 表:表是Lua的核心,可以作为数组、关联数组、集合或记录使用。表可以有元表,元表定义了对表进行操作时的行为。 二、Lua语法特点 1....

    Lua中文教程,高清PDF文档

    闭包是Lua中的一个重要概念,它允许函数访问并操作在其外部定义的变量,即使函数已经返回,这些变量仍然存在。 **模块和包系统** Lua的模块系统使得代码组织更加有序。通过require函数可以导入其他模块,实现代码...

    LUA实现led闪烁.rar_JW4_lua_lua 点亮led_stm32 lua_stm32_lua

    函数是可重用的代码块,支持匿名函数和闭包。 在STM32平台上使用LUA,我们需要一个支持LUA解释器的固件。例如,JW4是一个可能的选择,它提供了一个集成LUA环境的STM32固件框架。这个框架允许开发者通过LUA脚本来...

    Lua程序设计,2~4版本pdf电子书,C的Lua语言原滋原味

    通过合理的设计和优化,比如减少全局变量的使用、利用局部变量和闭包、以及适时地使用C扩展,开发者可以在保持代码清晰的同时,提高程序的执行速度。 总结,"Lua程序设计,2~4版本pdf电子书"是学习和进阶Lua语言的...

    lua中文手册lua-5.3-zh-manual.pdf

    包括栈操作、C闭包、注册表等底层功能。 9. 辅助库 提供了如数学、字符串处理、表操作等功能。 10. 标准库 标准库是Lua提供的一系列功能库,包括字符串、数学、操作系统交互、调试等方面的功能。 11. 独立版Lua ...

    Lua经典教程,附Lua环境 lua for windows

    函数定义使用function关键字,支持匿名函数和闭包。 4. 表:Lua的表是其核心数据结构,可以用来实现数组、集合、对象等。表是关联数组,可以使用任意类型的值作为键,但通常使用字符串或数字。 二、Lua环境 在...

    Lua游戏开发实践指南

    同时,Lua支持闭包,这对于实现回调函数和异步操作非常有用。 在游戏性能优化方面,Lua的弱引用和垃圾回收机制可以帮助开发者管理内存,避免不必要的性能消耗。此外,Lua与C/C++的紧密集成允许开发者编写高性能的C/...

    Programming in Lua Fourth edition

    闭包是Lua中实现局部变量持久化和函数工厂的关键工具。 5. **模块系统**:Lua没有内置的模块系统,但通过全局变量和require函数可以构建自己的模块化代码。 6. **垃圾收集**:Lua采用自动垃圾收集机制,程序员无需...

Global site tag (gtag.js) - Google Analytics