Desejos para MT5 - página 72

 
stringo:

Já discutimos isto. Descobrimos que podemos contentar-nos com a funcionalidade existente.

A sério? E que funcionalidade pode ser dispensada, por favor lembre-me?
 
Porque é que as variáveis globais são apenas do tipo duplo? E em 4, foi um obstáculo terrível, e em 5, não é claro porque não, em particular variáveis de corda.
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 

TheXpert:
Да ладно? И каким же функционалом можно обойтись, напомните, пожалуйста?

Eu disse-vos. Disponível.

Por exemplo, temos os ficheiros de cabeçalho incluídos uma vez. Não há necessidade de #ifdef.

Em vez de macrossubstituições de constantes dependendo de uma condição, podemos utilizar variáveis que são inicializadas de forma diferente em condições diferentes.

Mais uma vez, as condições podem ser definidas por variáveis constantes em vez de serem definidas por defeito.

Presença da constante IS_DEBUG_MODE

Capacidade de determinar em que ambiente o programa opera (teste, depuração, testes visuais, optimização, permitindo a utilização de dll).

 
marketeer:
Porque é que as variáveis globais são apenas do tipo duplo? Tanto em 4 interferiram terrivelmente como em 5 não é claro porque não, em particular variáveis de cordas.

Este é o tamanho máximo dos dados numéricos. Pode colocar até 8 bytes de informação numa variável global, que pode interpretar tanto tempo, como 2 ints ou 64 bits.

Porque é que as variáveis globais não podem ser de tipo string, pela mesma razão que as variáveis globais não podem ser arrays - para não complicar desnecessariamente

 
stringo:

Porque é que as variáveis globais não podem ser de tipo string, pela mesma razão que as variáveis globais não podem ser arrays - para não complicar desnecessariamente as coisas

Slava, o público dificilmente concordará consigo neste caso - esta complicação não seria desnecessária. Quer fazer uma votação?
 
MetaDriver:
Slava, o público dificilmente concordaria consigo neste caso - esta complicação não seria desnecessária. Quer fazer uma votação?

"Sobrecomplicar" neste contexto significa acrescentar novas funcionalidades lentas para um pequeno número de utilizadores. Foi agora implementado um mecanismo de armazenamento e acesso muito eficiente, e não queremos destruí-lo.

Para trocar dados entre programas (e mesmo entre terminais de clientes no mesmo computador) pode utilizar ficheiros. Basta escrever duas classes padrão uma vez.

A propósito, sobre variáveis globais de cadeia. Precisa deles para a troca de dados de cordas entre programas dentro de um terminal de cliente? Então porque não passar as cordas directamente, através de eventos do utilizador? É um método muito mais eficiente do que o intercâmbio de dados através de variáveis globais.

 
stringo:

Este é o tamanho máximo dos dados numéricos. Pode colocar até 8 bytes de informação numa variável global, que pode interpretar por tanto tempo, como 2 ints ou como 64 bits.

Porque é que as variáveis globais não podem ser cadeia, pela mesma razão que as variáveis globais não podem ser cadeia - de modo a não complicar desnecessariamente as coisas

Conhece o raciocínio familiar: torna a vida mais fácil para si próprio e mais difícil para os utilizadores, embora o programa pareça estar escrito pela sua duração. Não há nenhuma complicação especial em termos de implementação para si, mas tentando "interpretar" este duplo como deseja por falta de mais nada - é uma complicação para um perito em aplicações, se não para dizer mais forte. Enquanto se tem de emular variáveis globais de outros tipos com meios improvisados - o que se poderia fazer no sistema uma vez, os criadores de aplicações fazem no seu próprio lugar.
 
stringo:

A propósito, sobre as variáveis globais de cadeia. Precisa deles para trocar dados de cordas entre programas dentro de um terminal de cliente, certo? Então porque não passar as cordas directamente, através de eventos do utilizador? É um método muito mais eficiente do que o intercâmbio de dados através de variáveis globais.

Estas são coisas completamente diferentes. O estado deve ser armazenado e acessível, enquanto as mensagens são um meio de mudar de estado.
 
marketeer:
Um raciocínio familiar: torna a vida mais fácil para si próprio e mais difícil para os utilizadores, embora o programa pareça ter sido escrito para eles. Não há nenhuma complicação especial em termos de implementação para si, mas tentar "interpretar" este duplo de qualquer forma, por falta de qualquer outra coisa - esta é uma complicação para o utilizador, se não para dizer mais forte. Enquanto se tem de emular variáveis globais de outros tipos com meios improvisados - o que se poderia fazer no sistema uma vez, os criadores de aplicações fazem no seu próprio lugar.

Porquê emular qualquer coisa? Pode armazenar qualquer tipo de dados nos 8 bytes de uma variável global, excepto cadeia. Se forem dados do tipo duplo, utiliza-se directamente o valor resultante. Se são dados de outro tipo, então é necessária uma operação de cópia adicional de estruturas simples para obter os dados do tipo certo.

 
stringo:

Porquê emular qualquer coisa? Pode armazenar qualquer tipo de dados nos 8 bytes de uma variável global, excepto cadeia. Se forem dados do tipo duplo, utiliza-se directamente o valor resultante. Se for de outro tipo, é necessária uma operação de cópia adicional de estruturas simples para obter os dados do tipo certo.

Estava principalmente interessado em cordas.