请教一个诡异的问题
用for循环生成了一个table,然后把这个table加入另一个table作为项,如下:<div><span style="background-color: rgb(255, 255, 255);"></span> local npc_temp = {}<span style="white-space:pre"> </span></div><div> for npc,id in string.gmatch(npctext,"(%S+)%((%w+%s?%w*)%)") do-- 获得两个变量</div><div> </div><div><span style="white-space:pre"> </span>if npc then</div><div><span style="white-space:pre"> </span>npc_temp.name = npc --将两个变量加入npc_temp,</div><div><span style="white-space:pre"> </span>end</div><div><span style="white-space:pre"> </span>if id then</div><div><span style="white-space:pre"> </span>npc_temp.id = string.lower(id)</div><div><span style="white-space:pre"> </span>end<span style="white-space:pre"> </span></div><div><span style="white-space:pre"> </span>tprint(npc_temp)</div><div><span style="white-space:pre"> </span>table.insert(roomnpc,1,npc_temp) --将npc_temp加入 </div><div><span style="white-space:pre"> </span>tprint(roomnpc)</div><div><span style="white-space:pre"> </span>--roomnpc = npc_temp or {}</div><div><span style="white-space:pre"> </span>--i = i+1</div><div><span style="white-space:pre"> </span>end</div><div>
</div><div>
</div><div>结果是:</div><div><div>"name"="行者" --npc_temp正确建立</div><div>"id"="xingzhe"</div><div>1:</div><div>"name"="行者" --正确加入</div><div>"id"="xingzhe"</div><div>"name"="流氓" --第二次循环的npc_temp正确建立</div><div>"id"="liu mang"</div><div>1: --第二次正确加入</div><div>"name"="流氓"</div><div>"id"="liu mang"</div><div>2=table: 02DE39C0 --- 但前面加入的变成这样了***</div><div>"name"="流氓头" --第三次建立npc_temp正确</div><div>"id"="liumang tou"</div><div>1:</div><div>"name"="流氓头"-- 第三次加入正确</div><div>"id"="liumang tou"</div><div>2=table: 02DE39C0 --第三次加入后,前面两项变成同样的了***</div><div>3=table: 02DE39C0</div></div>
local npc_temp = {}
放到循环里面来。
npc_temp只创建了一次,当然是同一个。
你去饭店吃饭排队,拿100次号,排队的队列里也只有你一个人。
哪怕你把帽子外套都换了。
哦,是这样啊,还是概念上的模糊了,谢谢杰佬哦我去试试
页:
[1]