このコードを実行すると、私の言いたいことが正確に得られると思います。レジスター( people )に5人の名前を登録したい。私は 5 回ループし、各ループには変数newPersonがあります。これは、人に関するすべての情報を保存してから、人登録に追加することになっています。この例では、簡単にするために人々の名前のみが登録されています。問題は、最終的にすべての人が「ペトラ」という同じ名前を持つようになることです。私はこれで少し遊んでいましたが、この動作の合理的な理由を得ることができません. 助けてください!
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"])