lua使用table问题
来源:互联网 发布:结对编程 英文 编辑:程序博客网 时间:2024/05/16 17:25
今天在开发的时候,自己建立了一个table。建立代码如下:
self.skill_value_table = { skill_id = 0, show_type = 3, }self.skill_table = {}for i = 1, 8 doself.skill_table[i] = self.skill_value_table end
这样每次去改变self.skill_table[i]的值,所有的值都会跟着改变。
如果是以下这种方式创建:
self.skill_table = {}for i = 1, 8 dolocal skill_value_table = {skill_id = 0, show_type = 3,}self.skill_table[i] = skill_value_tableend这样每项值就没有了关联。
出现差异是因为lua中table的赋值类似c++的引用。只要改变一项,其他的也会跟着改变。因此,使用local变量,相当于通过自定义函数来赋值。
当创建一个table A以后,A的所有变量存在一块内存里。直接使用=号赋值,相当与对内存建立了另一份引用B;此时A和B都可以操作内存,内存变量改变,大家引用的值也将会改变。 当A={},重新赋值后,只是将之前的引用断了,指向新的内存;此时B还可以继续操作。当没有引用存在时,内存才会被释放
0 0
- lua使用table问题
- lua table 基本使用
- lua使用table例子
- lua table的使用
- lua table 使用记录
- lua table简单使用
- lua的Table.getn在MAC上使用问题
- lua的table长度问题(table.getn)
- lua的table长度问题
- lua的table长度问题
- lua的table长度问题
- lua table的长度问题
- lua中table引用问题
- Lua Table类型的使用
- lua中table的使用
- Lua中table的使用
- lua中的table使用陷阱
- lua之table.sort使用
- Java OCR 图像智能字符识别技术,可识别中文
- 搜索引擎的未来在哪里
- java操作excel
- 泛型
- myeclipse6.5中使用Alt+/不自动提示的修改
- lua使用table问题
- Git 内部原理
- python模块之email: 电子邮件编码解码 (一、解码邮件)
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法
- 二叉查找树的实现(可执行代码)
- SVN服务器搭建与服务注册
- java NIO实现的文件复制(包括文件与文件夹复制) NIO读取数据与写数据
- coreseek通过python读取mongoDB数据
- 如何在eclipse 中运行两个工程 一个Server 一个Client