Я пишу пользовательскую программу для программного обеспечения для моделирования. Существует переменная, называемая adj_elect05. Следующий кусок кода вызывается снова и снова. Каждый раз, когда он вызывается, я хочу, чтобы adj_elect05 (с числовым значением) увеличивался на определенную сумму, а затем записывал эту сумму в файл. Это код, который работает:Как правильно переназначить переменные в Lua?
increment = -10
adj_elect05 = adj_elect05 + increment
oct_voltages = io.open(O_V, "a+")
oct_voltages:write("\n", adj_elect05)
oct_voltages:close()
В файле я получаю список номеров: -10, -20, -30, и так далее. Проблема в том, мне нужно дать adj_elect05 общее имя, так что он может быть изменен в дальнейшем без необходимости вносить изменения в каждый экземпляр он показывает, так что я писал:
increment = -10
octupole_v = adj_elect05
octupole_v = octupole_v + increment
oct_voltages = io.open(O_V, "a+")
oct_voltages:write("\n", octupole_v)
oct_voltages:close()
С этим, я получаю -10 записывается в файл навсегда, когда код работает, а не уменьшает его на десять каждый раз. Что я делаю не так?
Это код в цикле/функции? Вы назначаете из 'adj_elect05' каждый раз в цикле/функции? Поскольку вы никогда не меняете 'adj_elect05', поэтому, если вы каждый раз назначаете' octupole_v' из 'adj_elect05' через цикл/функцию (во втором фрагменте), вы каждый раз отменяете свою приростную модификацию. –
Это функция. Так нет способа переименовать adj_elect05? Поскольку octupole_v изменяется в первом цикле, а затем назначается adj_elect05 во втором цикле, я ожидал бы, что adj_elect05 будет увеличен. – pictorexcrucia
'octupole_v' не является ссылкой на переменную' adj_elect05'. Это независимая переменная, которой присваивается одно и то же значение. Изменения в 'octupole_v' не меняют' adj_elect05'. Попробуйте 'a = 5; B = A; печать (а); печать (б); б = "Foo"; печать (а); print (b) 'например. –