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
Yura, seu exemplo com um retorno, é claro, é lógico. Mas preste atenção que, neste caso, todos os ifs são sempre executados, ao contrário do caso com muitos retornos, quando a saída da função é obtida imediatamente após atingir a corda com a condição.
ForexTools, obrigado, eu adotei suas idéias sobre formatação.
Mathemat, porque o operador condicional "se" também tem um gadget como "outro".
se(expressão1) operador1;
senão se(expressão2) operador2;
caso contrário, se (expressão3) operador3;
outro operador4;
E então o operador é executado após a primeira condição verdadeira e é isso. Todos os "ses" não são executados mais. Se uma condição verdadeira for encontrada, o operador correspondente é executado e o programa continua após esta construção (sem mais buscas na construção).
Eu não estou discutindo, Sergei. Eu estava falando sobre o projeto do Jura aqui.
Há outra pergunta interessante para "estimular" a discussão: Em que medida as limitações da plataforma afetam o estilo de escrita de um programa MQL? Por exemplo: o código é mais fácil de escrever, compreender/ler e manter se cálculos logicamente isolados forem feitos em funções separadas. Mas cada chamada de uma função (especialmente em um intérprete, como a MQL) é uma operação que consome tempo. É claro que uma única chamada não é crítica, mas a maioria de nós tem que escrever tais coisas dentro de um loop (para int i=0; i<Bars; i++) etc. E aqui começamos a decidir o que é mais importante - código agradável (na forma de funções - para que mais tarde entendamos o que escrevemos) ou velocidade de sua execução (cópia de fragmentos semelhantes - para que seu loop possa funcionar o tempo todo antes que o próximo tick chegue).
É claro que em cada caso - a decisão da linha média dourada é diferente, mas.... Quem soluciona este problema?
Coloquei os resultados de um pequeno estudo no mesmo tópico na primeira página. Com minha quantidade de cálculos (é pequena) estou bastante satisfeito com as funções - mesmo com o comprimento de uma linha. Mas também há outras opiniões aqui no fio da meada.
Provavelmente tem um efeito. Eu costumava considerar a antiga língua Trubo Pascual como ideal. Aí é possível estruturar funções, ou seja, declaração de funções em funções. C não permite isso. E estou tentando fazer algo semelhante neste momento, mas essencialmente na plataforma C. Naturalmente, esta é apenas uma aparência externa.
Mais preciso agora, Sergei?
Раньше я считал идеальным древний язык Трубо Паскуаль. Там есть возможность структурирования функций, т.е. объявление функций в функциях.
Como diabos é isso? Pessoalmente, comecei a aprender linguagens de programação no meu tempo com a C. Agora eu conheço dois deles: C e C++. E devo dizer que não me sinto nada atraído por estudar nenhum outro idioma. Por que eu tenho que declarar função em função? Pessoalmente, como cresci apenas em C e C++, não entendo este método.
Mas agora eu entendo isso. Se eu tiver funções até a sexta ordem de chamada, nem sempre é conveniente para mim agrupar todas as funções das diferentes ordens de chamada em uma pilha. Ela perde a visão geral da estrutura da chamada. E em Trubo Pasqualee, é tudo conveniente com isto: algumas funções principais que realizam o processamento de chaves, e todas as pequenas subfunções estão escondidas no interior.
Mas provavelmente é uma questão de hábito. Não escrevo nada nele há muito tempo - e não me arrependo muito disso.
Por que você tem que declarar uma função em uma função? Pessoalmente, como cresci exclusivamente em C, C++ não entendo este método.
"Há muitas coisas no mundo, amigo Horatio, com as quais nossos sábios nunca sonharam" ;)
Há uma beleza nisso - encapsulamento em encapsulamento, por assim dizer. Mas a sério, é uma ferramenta realmente útil, se você a usar com sabedoria, como tudo o mais.
Mathemat eu costumava pensar que a antiga língua Trubo Pascual era perfeita.
Estou pensando em voltar a ele, pelo menos na forma de DLL em Delphi. Estou cansado de trabalhar em MQL para fazer coisas simples, mas necessárias (por exemplo, diálogo trivial com o comerciante).
- Qual é a força, irmão!?
- A força está nas classes, irmão!
Acho que ainda não foi inventado nada melhor do que as aulas. Declarar funções privadas dentro da classe, e funções públicas para trabalhar com ela. É agradável e poderoso. Herdar funções e variáveis, pensar através da hierarquia. Encapsular dados criando estruturas de dados complexas. Processar os dados usando os algoritmos universais da biblioteca de modelos padrão. Francamente falando, o encapsulamento é muito pobre em MQL4. Você tem que manter diferentes tipos de dados separadamente, o que leva a erros. Muitas vezes temos que observar a indexação de matrizes (um erro terrivelmente irritante). Acho que isto será interrompido na MQL5.