При использовании table.insert(...)
вот так:
test ={}
table.insert(test, 1)
print(test[1]) -- 1
table.insert(test, 2)
print(test[1]) -- 1
Ожидаемый результат печати
1
1
Теперь, когда вы сделаете это:
local A = { b = {} }
local B = { c = { x=0 } }
function add(t, X)
local temp = B
temp.c = {x=X}
table.insert(t.b, temp)
end
local a = A
add(a, 1)
print(a.b[1].c.x) -- 1
add(a, 2)
print(a.b[1].c.x) -- 2
Результат
1
2
Но не должно ли быть 1 и 1 тоже? Это мое ожидаемое поведение, так как я обращаюсь к первому элементу inner table b
оба раза. Что мне здесь не хватает?