Массив (таблица) в OnCalculate

Страницы: 1
RSS
Массив (таблица) в OnCalculate
 
Помогите разобраться с кодом.
Settings =
{
Name = "*Primer123",
}

function Init()
Settings.line = {}
for i = 1, 5 do
Settings.line[i] = {}
Settings.line[i] =
{
Color = RGB(20, 255, 20),
Type = TYPE_LINE,
Width = 1
}
end
return 5 --'это означает, что в графике всего будет 5 линий
end

--объявляем массив для возврата значений линии
arr1={}
for i = 1, 5 do
arr1[i]=i+185
end

function OnCalculate(index)
return ---как правильно прописать весь массив? return arr1[1] это понятно, возвращается 1 элемент массива. А как прописать, что бы возвращалось 5 элементов массива?
  ---можно конечно вот так return arr1[1],arr1[2],arr1[3],arr1[4],arr1[5] - но если в массиве элементов будет 1000?
  ---просто return arr1 - не работает
end
 
Цитата
Айдар написал:
return ---как правильно прописать весь массив? return arr1[1] это понятно, возвращается 1 элемент массива. А как прописать, что бы возвращалось 5 элементов массива?

используйте функцию unpack

return unpack(arr1)
 
Не используйте unpack, если индикатор может иметь значение Ия nil в любой линии.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
Sergey Gorokhov написал:
Цитата
Айдар написал:
return ---как правильно прописать весь массив? return arr1[1] это понятно, возвращается 1 элемент массива. А как прописать, что бы возвращалось 5 элементов массива?

используйте функцию unpack

return unpack(arr1)
Спасибо!
 
Цитата
s_mike@rambler.ru написал:
Не используйте unpack, если индикатор может иметь значение Ия nil в любой лини
А что делать в данном случае?
 
Цитата
s_mike@rambler.ru написал:
Не используйте unpack, если индикатор может иметь значение Ия nil в любой линии.
Почему?
Надо делать так, как надо. А как не надо - делать не надо.
 
A={nil,1,2}
unpack(A). Даст непредсказуемый вариант зависимости от порядка заполнения полей
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
В вашем примере результат как раз предсказуем. Главное присвоить элементу nil, а вот если ничего не присвоить
Код
A = {[2] = 1, [3] = 2}
тогда да, непредсказуем.
Надо делать так, как надо. А как не надо - делать не надо.
Страницы: 1
Читают тему
Наверх