Erros, bugs, perguntas - página 1439
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Como a minha experiência mostra, se o programador escreve algo num array contendo 10 itens com índice 20, muito provavelmente significa que cometeu um erro e o programa deve gerar um erro em vez de aumentar o tamanho do array, escondendo assim uma acção questionável.
Todas aquelas "matrizes que ajustam o tamanho" são muito mais problemáticas em termos de esconder potenciais erros do que a conveniência. Além disso, não ter de controlar o tamanho de uma matriz é também uma prática potencialmente perigosa, levando a bugs difíceis de corrigir.
É impressão minha, ou não trabalhou com as línguas em questão? Não é necessário especificar um índice a ser adicionado: é atribuído automaticamente e o tamanho da matriz também é aumentado. O programador simplesmente não tem hipótese de cometer um erro com o índice durante esta operação.
Pode implementar comportamentos semelhantes com classes, adicionar as funções relacionadas pop, shift, unshift, etc. E arraste um vagão de classes de código para código, com cada código usando %10...20 funções do mesmo. Isto parece-lhe uma boa solução? Um exemplo de solução correcta na minha opinião é acrescentar aos ObjectosDeleteAll a capacidade de apagar por prefixo - isto é outro micron para programação de nível superior - e a maioria dos codificadores voaram para o caixote do lixo da reciclagem de modo a terem uma função tão auto-fabricada. Infelizmente, dificilmente veremos isso com arrays...
И таскать телегу классов из кода в код, при том что в каждом коде из неё используются %10..20 функций.
Não há necessidade de escrever classes "smart array", já estão na MetaQuotes Standard Library, ver a família de classes Arry
É impressão minha, ou não trabalhou com as línguas em questão? Não é necessário especificar um índice para o elemento adicionado, este é atribuído automaticamente e o tamanho da matriz é também aumentado. O programador não tem a possibilidade de cometer um erro com o índice durante esta operação
Awwwwww... Que hipóteses tem o programador de cometer um erro? Está errado ao pensar que pode ter em conta todas as variantes de qualquer programa complexo.
Todas essas "acções por defeito" devem ser propriedades de objectos complexos. Objectos simples, tais como variáveis, matrizes e estruturas simples - devem ter o mínimo de propriedades "por defeito" possível.
Por exemplo, na criação - devem armazenar um valor indefinido, e não zero.
Pode implementar comportamento semelhante com classes, adicionar funções relacionadas pop, shift, unshift, etc. E arraste um vagão de classes de código para código, com cada código usando %10...20 funções do mesmo. Isto parece-lhe a solução certa?
É a solução certa em termos de lógica. Quando se trabalha com tais classes - o seu comportamento é transparente.
E que tal "arrastar um carrinho cheio de aulas" - quando codificar não as arrasta, basta ligar a biblioteca. E ao compilar, um linker normal não deve colocar num executável todos os métodos da biblioteca, mas apenas aqueles que são utilizados.
Exemplo de solução correcta na minha opinião - adicionar aos ObjectosDeleteAll função apagar por prefixo - isto é outro micron para programação de nível superior - e a maioria dos codificadores voaram para o lixo esta função auto-fabricada. Infelizmente, é pouco provável que isto aconteça com arrays.
Na minha opinião, esta é também uma abordagem errada, pela mesma razão. A função está carregada de tarefas que não são típicas da mesma e não seguem a lógica da sua aplicação.
A solução correcta, parece-me, é ter um gestor de objectos de classe no gráfico que mantém uma lista deles, e remove os necessários à medida que as funções são chamadas. Os prefixos do nome, parece-me, devem servir apenas para tornar alguma informação sobre o objecto clara para uma pessoa. E eliminação - não deve basear-se de forma alguma no nome do objecto, mas sim em guardar esse nome numa matriz.
versão 5.0 build 1150, demo
Actualize o seu terminal (precisa de se ligar ao servidor MetaQuotes-Demo). Construção actual:
Este é o guião:
Dá este resultado:
Actualize o seu terminal (necessita de se ligar ao servidor MetaQuotes-Demo). Construção actual:
Este é o guião:
Dá este resultado:
Obrigado, sabe porque é que a bandeira tem um valor 0, como se nada tivesse mudado