Cuestión de mecanografía - página 8

 
Ilya Malev:

¿No eslo mismo quePrint(ColorToString(Color&(uint(-1)&65535)|(230<<16)); ?

Por el resultado sí, por la acción no.

Me temo que me devanaré los sesos estudiando sus códigos.

Es decir, quiero decir que todo en tus métodos es delicioso (no es broma) excepto la abundancia de mayúsculas con guiones bajos y las operaciones de resolución de contexto:)

Creo, que si se permite que (la operación de una resolución de contexto) se sobrecargue, usted y sus bibliotecas irán al astral :lol:

Es difícil no escribir una biblioteca, pero sí dar con una utilizable.

 
fxsaber:

Por resultado sí, por acción no. // bueno, sí, por acciónPrint(ColorToString(Color=(Color&(uint(-1)&65535)|(230<<16)))); :)

Es difícil no escribir una biblioteca, pero sí dar con una utilizable. // Ambas cosas son difíciles si no tienes tanta experiencia en las peculiaridades de los terminales como tú :)

 
Ilya Malev:

No, ese no es el algoritmo utilizado en absoluto. A la biblioteca no le importa el tipo de variable.

 
fxsaber:

No, ese no es el algoritmo utilizado en absoluto. A la biblioteca no le importa el tipo de variable.

No es el tipo de variable, sino su nombre=, es decir, la asignación. La acción y el resultado son los mismos: se cambia la variable.

Sin embargo, no he llegado muy lejos en la biblioteca, así que por favor, perdonadme si algo está mal.
 
Ilya Malev:

No es el tipo de variable, sino su nombre=, es decir, la asignación. La acción y el resultado son los mismos: se cambia la variable.

Aunque no me he adentrado mucho en la biblioteca, así que perdonadme si algo está mal.

Puede sustituir, por ejemplo, MqlTick-variable por una variable entera.

 
fxsaber:

Puede sustituir, por ejemplo, una variable MqlTick por una variable entera.

Entiendo que todo es universal. Hemos resuelto el tema de la copia de estructuras en el siguiente hilo juntos :) Por el momento no me encuentro con este problema. Y me ocupo de la construcción de datos de varios tipos a partir de bytes y la modificación de los campos de bits también, aunque el número de opcional, sin beneficio práctico especial :)

 
Ilya Malev:

Entiendo que tienen todo en común. Hace poco resolvimos el tema de la copia de estructuras juntas en un hilo vecino :) Por el momento no me encuentro con este problema. Y me he ocupado mucho de la construcción de datos de varios tipos a partir de bytes y de la modificación de los campos de bits, aunque el número de opcionales, sin ninguna utilidad práctica particular :)

Así, es posible crear A(Objeto)[Índice] = 5.

 
fxsaber:

Sólo quería decir que es posible crear A(Object)[Index] = 5.

Por supuesto, si se trabaja con todo como un solo tipo -conjuntos de bytes o bits o ints, etc., entonces se puede, pero esto es de otro plano, no se trata de hacer un código simple, intuitivo, fácil de entender y de cambiar.

 

También me gusta cuando no hay diferencia entre int, double y datetime. Aquí, tal vez alguien le gusta la idea (en términos de velocidad de asignación no es realmente diferente de los tipos originales):

#property strict

class price{ public:
  int    operator| (double p){return(int)(p*100000);}
  double operator| (int p){return(double)p/100000.0;}};

class time{ public:
  int operator| (datetime p){return(int)uint(p);}
  datetime operator| (int p){return(datetime)uint(p);}};

price f;
time t;

void OnStart()
 {
  int  bid = f|Bid, ask = f|Ask, time1 = t|TimeCurrent(), time2 = t|TimeLocal();
  
  Print("Bid = ", f|bid, " Ask = ", f|ask, " Current time = ", t|time1, " Local time = ", t|time2);
 }  


Funcionará de forma garantizada para divisas (precios no superiores a 21474 enteros) y fechas hasta 2107.
 
Ilya Malev:

También me gusta cuando no hay diferencia entre int, double y datetime.

Es decir, si se confunden las moscas con las chuletas, para dificultar al máximo la detección del problema...