Вот мой код:Lua Tables: как присвоить значение не адрес?
test_tab1={}
test_tab2={}
actual={}
actual.nest={}
actual.nest.a=10
test_tab1=actual.nest
print("test_tab1.a:" .. test_tab1.a) -- prints test_tab1.a equal to 10
actual.nest.a=20
test_tab2=actual.nest
print("test_tab2.a:" .. test_tab2.a) -- prints test_tab2.a equal to 20
print("test_tab1.a:" .. test_tab1.a) -- prints test_tab1.a equal to 20
Фактический выход:
test_tab1.a:10
test_tab2.a:20
test_tab1.a:20
Согласно моему пониманию как test_tab1
и test_tab2
указывают на тот же адрес т.е. actual.nest поэтому, когда я задаю actual.nest.a=20
значение test_tab1.a
также меняется на 20, что было 10 ранее.
Ожидаемый результат:
test_tab1.a:10
test_tab2.a:20
test_tab1.a:10
Может кто-нибудь помочь мне получить этот вывод .Если я меняюсь actual.nest.a=20
второй раз он не должен отражать в test_tab1.a
т.е. 10
Выход правильно – moteus
Выход правильно, что все в порядке. Но как можно получить второй выход? test_tab1.a: 10 test_tab2.a: 20 test_tab1.a: 10 – StackUser
Вам необходимо создать разделяемую таблицу. Вы можете сделать это при назначении 'test_tab1' или при назначении' test_tab2' и изменить значение в этой копии. Это действительно зависит от вашего варианта использования. – moteus