[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 167

 
Pyro:

Всем привет. Может ли фунцкия возвращать несколько значений (через запятую) ?

return(1,2)

Или это бред? :)) Просто нужно определить лот и цены ордера а писать под это две функции нерационально.


функция может возвращать значение в переданный в неё параметр по ссылке &
 
sergeev:

функция может возвращать значение в переданный в неё параметр по ссылке &


А где можно почитать подробнее? Не могу найти в документации здесь на сайте. Заранее спасибо большое.

 
Pyro:


А где можно почитать подробнее? Не могу найти в документации здесь на сайте. Заранее спасибо большое.


https://docs.mql4.com/ru/basis/variables/formal
 
Pyro:

Всем привет. Может ли фунцкия возвращать несколько значений (через запятую) ?

return(1,2)

Или это бред? :)) Просто нужно определить лот и цены ордера а писать под это две функции нерационально.

Можно передавать данные между разными функциями одной программы через глобальные переменные.
Количество неограничено.
 
Pyro:

Всем привет. Может ли фунцкия возвращать несколько значений (через запятую) ?

return(1,2)

Или это бред? :)) Просто нужно определить лот и цены ордера а писать под это две функции нерационально.

Формально не может. Т.е. функция возвращает одно значение, но функция может вернуть структуру или класс (что одно и тоже). К сожалению, в MQL4 это невозможно, за исключением возврата структуры укладывающейся в 4 байта (int). Далее извлечь инфу можно с помощью побитовых операций. Ещё можно поэкспериментировать с DOUBLE и STRING.

sergeev:

функция может возвращать значение в переданный в неё параметр по ссылке &
В таком случае функция модифицирует параметр. Возвращает результат только в return.
 
Zhunko:

... за исключением возврата структуры укладывающейся в 4 байта (int). Далее извлечь инфу можно с помощью побитовых операций.


Можно также раздерибанить int по кусочкам с помощью операций деления(/) и остатка от деления (%)
 
MikeM:
Можно также раздерибанить int по кусочкам с помощью операций деления(/) и остатка от деления (%)

Легче тогда уж возвращать строку, а потом парсить ее, там можно немеряно инфы поместить :)
 
MikeM:
Можно также раздерибанить int по кусочкам с помощью операций деления(/) и остатка от деления (%)
Это тоже самое только через задницу. Побитывые операции первичны. Они быстрее.
 
Zhunko:

Ещё можно поэкспериментировать с DOUBLE и STRING.

STRING - в этом плане перспективно, а вот DOUBLE - сомневаюсь.
 
Zhunko:
Это тоже самое только через задницу. Побитывые операции первичны. Они быстрее.
Можно поспорить. Результат "быстрой" побитовой операции потом придётся коим-то образом обрабатывать.