проблема: У меня есть массив под названием X
. X[1:20]
. Для начала я инициализировал 0.индекс отрицательное число в массиве в lua
Я хочу передать число каждому элементу массива после добавления 1 к нему. Поэтому я читаю номер и сохраняю в локальной переменной z
. иногда «число» может быть положительным и отрицательным.
Однако массив только для положительных (то есть x [1 .... 20]) Когда «число» отрицательное, lua дает сообщение об ошибке «попытка выполнить арифметику в поле»? (Нилъ значение).
Что я должен делать?
local x= {}
local number
local z
for i = 1, 20 do
x [i] = 0; -- array initialization
end
for y = 1, 5 do
z = number -- I am reading a "number" from hardware & it is a negative integer number
x[z] = x[z]+1 ;
end
Спасибо, Бенджамин. Это работает. Однако, если я хочу фактически использовать отрицательное число и добавить его в массив, то какой у меня вариант? Основываясь на вашем ответе каждый раз, когда я получаю отрицательное число, он присваивает 0 x [z], и я не хочу этого, даже несмотря на то, что он создает код. Как вы думаете, если я хочу дать отрицательное число массиву, тогда мне придется определять массив от -20 до 20 вместо 1 до 20? –
Это зависит от того, какое значение вы хотите по умолчанию? Я смущен тем, что именно вы хотите. Значение «или 0» означает, что значение по умолчанию равно 0, а символ + 1 в конце увеличивает любое предыдущее значение (0, если оно не существует) на единицу. Это будет действовать так, как если бы вы инициализировали ваш массив в диапазоне от ℝ (от -infinite до + infin) и задали значение каждого из них равным 0. –