我認爲運行這個代碼你會得到我的意思。我想註冊5個名字到一個註冊(人)。我循環5次,並在每個循環中我有一個變量newPerson這應該保存所有關於一個人的信息,然後被添加到人註冊。在這個例子中,爲了簡單起見,只有人的姓名正在註冊。 問題是,最後所有人都轉向具有相同的名稱:「佩特拉」。我玩了一下這個,但不能得到這種行爲的合理理由。幫助讚賞!Lua:爲什麼改變一個變量的值也會改變另一個變量的值呢?
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"])
謝謝!這解釋了很多。 – Pithikos 2010-12-21 18:37:37