Lua中的弱引用介绍

 更新时间:2015年04月22日 11:32:30   投稿:junjie  
这篇文章主要介绍了Lua中的弱引用介绍,本文用一个实例讲解了Lua弱引用的相关知识,需要的朋友可以参考下

一个table的弱引用类型是通过其元素表中的__mode字段来决定的,这个字段的值应为一个字符串,如果这个字符串中包含字母'k'/'v'那么这个table 的value是弱引用,代码如下:

复制代码 代码如下:

key = {} 
a[key] = 1 
key = {} 
a[key] = 2 
collectgarbage() --强制进行一次垃圾收集 
for k, v in pairs(a) do 
    print(v) 
end 

结果:2

第二句复制key = {} 会覆盖第一个key.当收集器运行时,由于没有其他地方在引用第一个key,因此第一个key就被回收了,并且table中的相应条目也被删除了,至于第二个key,变量key仍引用它,因此它没有被回收了

注意,lua只会回收弱引用table中的对象,而像数字和bool这样的值,是不可以回收的。

您可能感兴趣的文章:

相关文章

  • Lua中的迭代器浅析

    Lua中的迭代器浅析

    这篇文章主要介绍了Lua中的迭代器浅析,本文先是讲解了什么是迭代器,然后给出了自己写一个迭代器的示例,最后介绍了迭代器的调用方法,需要的朋友可以参考下
    2014-09-09
  • Lua编程示例(三):稀疏表、双端队列、格式化输出、表和循环表的格式化输出

    Lua编程示例(三):稀疏表、双端队列、格式化输出、表和循环表的格式化输出

    这篇文章主要介绍了Lua编程示例(三):稀疏表、双端队列、格式化输出、表和循环表的格式化输出,本文直接给出实例代码,代码中包含详细注释,需要的朋友可以参考下
    2015-07-07
  • Lua中实现StringBuffer功能

    Lua中实现StringBuffer功能

    这篇文章主要介绍了Lua中实现StringBuffer功能,本文给出了实现代码和调用代码,需要的朋友可以参考下
    2014-11-11
  • 基于 aLi Lua Web Server 的一个简单例子

    基于 aLi Lua Web Server 的一个简单例子

    这篇文章主要介绍了基于 aLi Lua Web Server 的一个简单例子的代码,非常简单,推荐给大家。
    2015-03-03
  • Lua函数与字符串处理简明总结

    Lua函数与字符串处理简明总结

    这篇文章主要介绍了Lua函数与字符串处理简明总结,本文总结了单一参数、多个参数、可变参数、函数返回值及字符串处理等内容,需要的朋友可以参考下
    2014-10-10
  • C调用lua函数需要考虑的问题

    C调用lua函数需要考虑的问题

    这篇文章主要介绍了C调用lua函数需要考虑的问题,本文罗列了4条需要注意的问题,并给出了调用实例,需要的朋友可以参考下
    2015-04-04
  • Lua中的函数浅析

    Lua中的函数浅析

    这篇文章主要介绍了Lua中的函数,包括函数声明、函数参数、多重返回值、变长参数、具名实参、闭包函数等内容,需要的朋友可以参考下
    2014-09-09
  • Lua中的迭代器和泛型for介绍

    Lua中的迭代器和泛型for介绍

    这篇文章主要介绍了Lua中的迭代器和泛型for介绍,任何一种结构,只要允许你遍历集合中所有元素的都可称之为迭代器,本文就讲解了Lua中迭代器的相关知识和代码实例,并讲解了泛型for的语法,需要的朋友可以参考下
    2015-04-04
  • Lua中的源代码预编译浅析

    Lua中的源代码预编译浅析

    这篇文章主要介绍了Lua中的源代码预编译浅析,Lua确实允许在运行源代码之前,将源代码预编译成一种中间形式(类比Python的.pyc),需要的朋友可以参考下
    2014-09-09
  • Ruby类实例变量、类实例方法和类变量、类方法的区别

    Ruby类实例变量、类实例方法和类变量、类方法的区别

    这篇文章主要介绍了Ruby类实例变量、类实例方法和类变量、类方法的区别,本文探讨一下他们的定义和基本的使用场景,需要的朋友可以参考下
    2015-04-04

最新评论