luoeric 发表于 2023-12-13 11:47:31

请教一个诡异的问题

用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>

jarlyyn 发表于 2023-12-13 11:50:21

      local npc_temp = {}      

放到循环里面来。

npc_temp只创建了一次,当然是同一个。

你去饭店吃饭排队,拿100次号,排队的队列里也只有你一个人。
哪怕你把帽子外套都换了。

luoeric 发表于 2023-12-13 11:56:04

哦,是这样啊,还是概念上的模糊了,谢谢杰佬哦我去试试
页: [1]
查看完整版本: 请教一个诡异的问题