[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 165

 
sergeev:

la función puede devolver un valor al parámetro que se le pasa por referencia &


¿Dónde puedo leer más sobre el tema? No lo encuentro en la documentación del sitio. Muchas gracias de antemano.

 
Pyro:


¿Dónde puedo leer más sobre el tema? No lo encuentro en la documentación de la página web. Muchas gracias de antemano.


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

Hola a todos. ¿Puede una función devolver varios valores (separados por comas)?

devolver(1,2)

¿O es una tontería? :)) Sólo necesito especificar el lote y el precio del pedido, pero no es racional escribir dos funciones para ello.

Puede pasar datos entre diferentes funciones de un programa a través de variables globales.
El número es ilimitado.
 
Pyro:

Hola a todos. ¿Puede una función devolver varios valores (separados por comas)?

devolver(1,2)

¿O es una tontería? :)) Sólo necesito definir el precio de la orden y el lote, pero no es racional escribir dos funciones para ello.

Formalmente, no puede. Es decir, la función devuelve un valor, pero puede devolver una estructura o una clase (que es lo mismo). Desgraciadamente, en MQL4 es imposible, excepto para devolver una estructura que cabe en 4 bytes (int). A continuación, se puede extraer la información mediante operaciones a nivel de bits. También puedes experimentar con DOBLE y CUERDA.

sergeev: la función

puede devolver un valor en el parámetro que se le pasa por referencia &
En este caso, la función modifica el parámetro. Sólo devuelve el resultado a cambio.
 
Zhunko:

... excepto la devolución de una estructura que cabe en 4 bytes (int). Se puede extraer más información utilizando operaciones de bit a bit.


También se puedetrocear un int mediante las operaciones de división (/) y resto de división (%)
 
MikeM:
También puedes trocearint con operaciones de división(/) y resto de división(%).

Es más fácil devolver una cadena y luego parsearla, puedes poner mucha información ahí :)
 
MikeM:
También puedescortar un int en trozos utilizando las operaciones de división(/) y resto de división(%).
Esto es lo mismo pero por el culo. Las operaciones a destajo son primordiales. Son más rápidos.
 
Zhunko:

También puedes experimentar con DOBLE y CUERDA.

STRING es prometedor, peroDOUBLE es dudoso.
 
Zhunko:
Es lo mismo pero por el culo. Las operaciones de maltrato son primarias. Son más rápidos.
Se podría argumentar. El resultado de una operación "rápida" a nivel de bits debe ser procesado de alguna manera.
 
Por ejemplo, intente "empaquetar" tres números en el rango 0...1023 en un único int seguido de desempaquetar exclusivamente mediante operaciones bitwise y verá lo que significa "por el culo"
)
))