Pergunta datilografada - página 8

 
Ilya Malev:

Não é o mesmo quePrint(ColorToString(Color&(uint(-1)&65535)|(230<<<16)); ?

Pelo resultado sim, pela ação não.

Tenho receio de arrebentar meu cérebro estudando seus códigos.

Ou seja, tudo em seus métodos é encantador (sem brincadeira), exceto a abundância de letras maiúsculas com sublinhados e operações de resolução de contexto:)

Eu acho que se for permitido (operação de uma resolução de contexto) sobrecarregar, você e suas bibliotecas irão para o astral :lolol:

É difícil não escrever uma biblioteca, mas criar uma que possa ser utilizada.

 
fxsaber:

Pelo resultado sim, pela ação não. // bem, sim, por açãoPrint(ColorToString(Color=(Color&(uint(-1)&65535)|(230<<<16)))); :)

É difícil não escrever uma biblioteca, mas criar uma que possa ser utilizada. // Ambos são difíceis se você não tem tanta experiência em peculiaridades terminais quanto você tem :)

 
Ilya Malev:

Não, esse não é o algoritmo utilizado. A biblioteca não se preocupa com o tipo de variável.

 
fxsaber:

Não, esse não é o algoritmo utilizado. A biblioteca não se preocupa com o tipo de variável.

Não é o tipo de variável, mas seu nome=, ou seja, atribuição. A ação e o resultado são os mesmos - a variável é alterada.

Mas eu não cheguei longe na biblioteca, portanto, por favor, me perdoe se algo está errado.
 
Ilya Malev:

Não é o tipo de variável, mas seu nome=, ou seja, atribuição. A ação e o resultado são os mesmos - a variável é alterada.

Embora eu não tenha ido muito longe na biblioteca, então, por favor, me perdoe se algo está errado.

Você pode substituir, por exemplo, a variável MqlTick por uma variável inteira.

 
fxsaber:

Você pode substituir, por exemplo, a variável MqlTick em vez da variável inteira.

Eu entendo que tudo é universal. Resolvemos juntos a questão da cópia de estruturas no próximo tópico :) Não estou enfrentando este problema no momento. E lido com a construção de dados de vários tipos a partir de bytes e modificação de campos de bits também, embora o número de opcionais, sem lucro prático especial :)

 
Ilya Malev:

Entendo que tudo é universal com você. Resolvemos recentemente a questão da cópia de estruturas em um fio vizinho :) Não estou enfrentando este problema no momento. E tenho lidado muito com construção de dados de vários tipos a partir de bytes e modificação de campos de bits, embora o número de opcionais, sem nenhum uso prático particular :)

Portanto, é possível criar A(Object)[Index] = 5.

 
fxsaber:

Eu só queria dizer que é possível criar A(Object)[Index] = 5.

Claro que, se você trabalha com tudo como um tipo - conjuntos de bytes ou bits ou ints, etc., então você pode, mas isto é de outro plano, não se trata de fazer um código simples, intuitivo, fácil de entender e mutável.

 

Eu também gosto quando não há diferença entre int, double e datetime. Aqui, talvez alguém goste da idéia (em termos de velocidade de atribuição não muito diferente dos tipos originais):

#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);
 }  


Trabalhará com garantia para forex (preços não superiores a 21474 inteiros) e datas até 2107.
 
Ilya Malev:

Eu também gosto quando não há diferença entre int, double e datetime.

Isto é, se por acaso você confundir moscas com costeletas, para dificultar o máximo possível a detecção do problema?

Razão: