Nasıl değer Lua bir tablo duyuyor musun?
Son zamanlarda Lua kodu da başka bir şey gibi yazdım:
local a = {}
for i = 1, n do
local copy = a
-- alter the values in the copy
end
Belli ki, bu değişkenleri isimsiz bir tablo değerlerini değil, kendileri için başvurular tutun beri yapmak Lua içinde benim istediğim değildi. Bu açıkça Programming in Lua ama unutmuştum ortaya koydu.
Bu yüzden soru yerine copy = a
a
değerleri bir kopyasını almak için ne yazmam gerekiyor?
CEVAP
Tablo kopya birçok potansiyel tanımları var. Kopyalama veya metatables, vb paylaşmak görmezden gelmek istemediğinizi basit veya derin kopyalamak istediğiniz bağlıdır. Herkesi tatmin edebilecek tek bir uygulama yok.
Bir yaklaşımın, yeni bir tablo oluşturmak ve tüm anahtar/değer çiftleri çoğaltmak için
function table.shallow_copy(t)
local t2 = {}
for k,v in pairs(t) do
t2[k] = v
end
return t2
end
copy = table.shallow_copy(a)
Kullanmanız gerektiğini unutmayın ipairs
Tek tablo bir alt kümesi üzerinde yineleme beri ipairs
yerine pairs
tuşları (örn. ardışık pozitif tamsayı tuşları artan sırayla tek tek başlayarak).
Nasıl JavaScript ile CSS kuralı değerl...
Nasıl Server tablo sütun olup olmadığı...
Nasıl bir C verirsiniz# Otomatik Özell...
Nasıl NSString için bilimsel deneyler ...
Nasıl Python standart girdiden okur mu...