我认为运行这段代码你会得到我的意思。我想将 5 个名字注册到一个寄存器(人)。我循环了 5 次,在每个循环中我都有一个变量newPerson,它应该保存有关一个人的所有信息,然后添加到人员寄存器中。在这个例子中,为了简单起见,只注册了人的名字。问题是最终所有人都变成了同一个名字:“Petra”。我对此有点玩弄,但无法为这种行为找到合理的理由。帮助表示赞赏!
local people={}
local person={
name="Johan",
lastName="Seferidis",
class="B"
}
local names={"Markus", "Eva", "Nikol", "Adam", "Petra"} --people to register
for i=1, 5 do --register 5 people
local newPerson=person
local name=names[i]
for field=1, 3 do --for each field(name, lastname, class)
if field==1 then newPerson["name"]=name end --register name
end
people[i]=newPerson
end
print("First person name: " ..people[1]["name"])
print("Second person name: "..people[2]["name"])
print("Third person name: " ..people[3]["name"])