Суббота, 13 Декабрь 2008 08:05

Как получить значение нескольких переменных при однократном вызове функции?

Автор 
Оцените материал
(1 Голосовать)

Есть два основных типа передачи переменных в функцию: по значению и по ссылке.

При передаче значения по ссылке, передается не само значение переменной, а ее адрес. Значение, переданное по ссылке, может быть изменено внутри самой функции.

Для передачи ссылок в EasyLanguage существуют следующие типы объявлений:

    * StringRef
    * StringArrayRef
    * NumericRef
    * NumericArrayRef
    * TrueFalseRef
    * TrueFalseArrayRef

Вот, например, объявление массива в программе, из которой мы будем обращаться к функции с передачей этого массива в качестве параметра:

Arrays: State[10,1000](0);

Объявление этого же массива в качестве параметра в коде самой функции:

Inputs: RefArray[Xsize,Ysize](NumericArrayRef);

Где Xsize, Ysize - получают значение размера передаваемого массива. Эти обозначения (Xsize, Ysize) можно использовать в коде функции для того, чтобы получить размер передаваемого в качестве параметра массива.

Пример вызова функции (из индикатора, стратегии или иной функции):

x = Function(State);

При этом в функцию может буть передано сколько угодно значений в теле этого массива State, и возвращено любое количество значений, которое ограничивается только самим размером массива.

 



В подготовке материала принял участие Герман Брюханов (Leader).


Прочитано 3482 раз Последнее изменение Среда, 04 Май 2011 14:14
Gelium

Автор сайта.

Для души и разума.

Суфий Баязид так говорил о себе самом:

"В молодости я был революционером. В молитве я просил у Бога лишь одного: "Господи, дай мне силы изменить этот мир". Прожив пол века, я осознал, что за все это время мне не удалось изменить ни единой души. Поэтому я поменял свою молитву: "Господи, дай мне возможность изменить хотя бы близких мне людей - мою семью и друзей, и этого мне будет достаточно". Сейчас, когда мои дни уже сочтены, я молюсь так: "Господи, дай мне силы изменить самого себя". Если бы я молился так с самого начала, я бы не растранжирил попусту свою жизнь.




Перепечатка авторских материалов сайта без указания ссылки на
сайт Gelium.net запрещена.

Pavel Gelium 2000-2017 © All rights reserved.