[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 165

 
sergeev:

a função pode retornar um valor ao parâmetro passado a ele por referência &


Onde posso ler mais sobre o assunto? Não consigo encontrá-lo na documentação aqui no site. Muito obrigado de antemão.

 
Pyro:


Onde posso ler mais sobre o assunto? Não consigo encontrá-lo na documentação aqui no site. Muito obrigado de antemão.


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

Olá a todos. Uma função pode retornar múltiplos valores (separados por vírgula) ?

retorno(1,2)

Ou será um absurdo? :)) Só preciso especificar o lote e o preço do pedido, mas não é racional escrever duas funções para isso.

Você pode passar dados entre diferentes funções de um programa através de variáveis globais.
O número é ilimitado.
 
Pyro:

Olá a todos. Uma função pode retornar múltiplos valores (separados por vírgula) ?

retorno(1,2)

Ou será um absurdo? :)) Eu só preciso definir o preço e o lote do pedido, mas não é racional escrever duas funções para ele.

Formalmente, não pode. Ou seja, a função retorna um valor, mas pode retornar uma estrutura ou uma classe (que é a mesma coisa). Infelizmente, na MQL4 é impossível, exceto pela devolução de uma estrutura que cabe em 4 bytes (int). Em seguida, as informações podem ser extraídas por meio de operações bitwise. Você também pode experimentar com DOUBLE e STRING.

sergeev:

função pode retornar um valor no parâmetro passado a ele por referência &
Neste caso, a função modifica o parâmetro. Somente devolve o resultado em troca.
 
Zhunko:

... exceto para o retorno de uma estrutura que se encaixa dentro de 4 bytes (int). Outras informações podem ser extraídas usando operações bitwise.


Você também podefazer uma parte de uma int usando operações de divisão (/) e o restante da divisão (%)
 
MikeM:
Você também podecortar em pedaços com divisão(/) e o restante das operações de divisão(%).

É mais fácil devolver um fio e depois analisá-lo, você pode colocar um monte de informações lá :)
 
MikeM:
Você também podecortar uma int em pedaços usando operações de divisão(/) e o restante da divisão(%).
Isto é o mesmo, mas através do rabo. As operações por setores são primárias. Eles são mais rápidos.
 
Zhunko:

Você também pode experimentar com DOUBLE e STRING.

STRING é promissor, masDOUBLE é duvidoso.
 
Zhunko:
É a mesma coisa, mas pelo rabo. As operações com baterias são primárias. Eles são mais rápidos.
Você poderia argumentar. O resultado de uma operação "rápida" bitwise terá que ser processado posteriormente de alguma forma.
 
Por exemplo, tente "embalar" três números na faixa 0...1023 em um único int seguido de desempacotar exclusivamente por operações bitwise e você verá o que "através do asno" significa
)
))