lua table传值是传的引用

原创 2015年11月17日 17:23:44

local randArray = {}

for _ = 1, itemNum do

        local i = math.random(typeNum)

        randArray[_] = ConfigMap[i]

randArray[_].flagId = _

end

当我这样做的时候,每当随机出来的值有相同的时候,flagId的值就变得混乱了,而我希望flagId代替randArray的索引,应该是1 2 3 4 5 ... ...

混乱的现象是当前值跟前面随机出来的值有相同的时候,发现就算还没有运行randArray[_].flagId=_,但却已经有flagId这个字段了,

如果运行完这行,之前的那个值中的flagId字段会变得跟后面的一样。

后来无意中发现,已经添加过的值,在ConfigMap里面也有flagId字段了!

我的天,搞了我半天,实在是太奇怪了!

原来原因是:

lua 中表的传值,传的是引用!



lua深度克隆的实现(lua基本数据类型传的是值,表类型传的是引用)

local function main() require "src/boot/Bootstrap" BootStrap:boot( ) local value ...
  • themagickeyjianan
  • themagickeyjianan
  • 2016年05月06日 11:19
  • 1196

Lua: 在C++中将table如何传入到lua中

例一是参考别人的: //定义函数(返回table) int func_return_table(lua_State *L) { lua_newtable(L);//创建一个表格,放在栈顶 lua_...
  • u010921682
  • u010921682
  • 2015年04月09日 20:49
  • 1866

[一][ToLua]C#与toLua代码相互调用

一、创建Main.lua文件 Main = { name = “Main”, } function MainView:Awake() print(“this is Main...
  • qq_26865935
  • qq_26865935
  • 2017年01月09日 21:03
  • 1895

一个 JS 写的 Table 自增/减行例子,和一个模态对话框传值例子的源代码

  • 2010年04月21日 16:19
  • 3KB
  • 下载

Bootstrap Table插件传值给后台解决中文乱码的问题

问题描述: 前台传到后台的值显示的是“????”; 原因: 因为bootstrap Table插件使用连接传值,默认的是ascll编码,(可能,未验证),需要转码。 解决办法(两步!): 1....
  • Hellojava001
  • Hellojava001
  • 2017年10月30日 11:52
  • 145

Java是传值还是传址引用

  • 2007年04月20日 17:28
  • 53KB
  • 下载

Lua table 引用

学过c++都知道引用。&a = b, 则a与b是指向同一块内存,a与b只是名字不同,本质是一样的。lua中的table有强引用和弱引用,看下面例子 t = {}; setmetatable...
  • chenhittler
  • chenhittler
  • 2015年10月27日 18:04
  • 1332

Lua内存泄露检测原理和weak_table弱引用

lua内存泄露 首先第一点,lua中的内存泄露和我们所说的c/c++中的内存泄露本质上是不一样的。 lua中有垃圾回收机制(GC),所以理论上是不会有内存泄露的。当它进行GC的时候,会从根部开始扫描所...
  • yxtxiaotian
  • yxtxiaotian
  • 2016年05月22日 17:09
  • 2340

Lua学习笔记 第十七章 弱引用table

Lua采用了自动内存管理机制。一个程序只需创建对象,而无需删除对象。通过使用垃圾 收集机制,Lua会自动地删除那些已成为垃圾的对象。这减轻了程序员在内存管理方面的 负担,更重要的是将程序员从许多内...
  • wang1029
  • wang1029
  • 2014年08月26日 15:24
  • 326

Lua 基础之弱引用 table

lua 的垃圾回收器只会回收没有引用的对象,有些时候并不能回收程序员认为的垃圾。比如数组里的元素在其它地方已经没有引用了,但因为还在数组中,因此垃圾回收器并不会去回收它 弱引用 table 告诉回收器...
  • xingxinmanong
  • xingxinmanong
  • 2017年07月19日 09:58
  • 96
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lua table传值是传的引用
举报原因:
原因补充:

(最多只允许输入30个字)