Erreurs, bugs, questions - page 1331

 
Votre vérité
 
Je ne sais pas si cela a déjà été mentionné. Dans le MetaEditor, si le nom de la variable d'entrée coïncide avec le nom de la variable locale (ou le nom du champ de classe), ce dernier est mis en évidence en rouge partout, tout comme la variable d'entrée. Cela entraîne une confusion lors de la lecture du code. Nous devrions corriger cela.
 
Alexey Navoykov:
Je ne sais pas si ça a déjà été dit ou non. Dans le MetaEditor, si le nom d'une variable d'entrée coïncide avec le nom d'une variable locale (ou le nom d'un champ de classe), ce dernier est marqué en rouge partout, ainsi que la variable d'entrée. Cela provoque une confusion lors de la lecture du code. Nous devrions corriger cela.

donner des noms identiques à des entités de code est une tentative de se tirer une balle dans le pied :)

Il est plus facile de changer le nom d'une variable d'entrée et vous n'aurez pas de problèmes ni de confusion...

 

MT4/845, Windows7/64 bit. Question sur le texte vers une nouvelle ligne avec \n. J'ai fait un script :

#property strict

string t1="Text_1";
string t2="Text_2";

void OnStart()
  {
   Print(t1+"\n "+t2);
   Print("Text_3"+"\n Text_4");
  }

Résultat :


J'espérais que les valeurs de Text_2 et Text_4 seraient sur d'autres lignes. Veuillez me dire ce qui ne va pas.

 
Konstantin Karpov:

donner des noms identiques à des entités de code est une tentative de se tirer une balle dans le pied :)

Il est plus facile de changer le nom d'une variable d'entrée et vous n'aurez aucun problème ni aucune confusion...

Votre conseil n'a aucun sens en pratique. Personne ne donne volontairement des noms identiques. Le code de la fonction locale vit sa propre vie séparée, tandis que le programme externe vit sa propre vie. Et les noms des variables externes peuvent changer avec le temps et de nouvelles variables externes peuvent être ajoutées.Et si, après cela, l'une des centaines de fonctions possède soudainementune variable locale portant le même nom, que pensez-vous que nous devrions renommer la variable globale? Vous ne devriez pas chercher des excuses aux bugs des développeurs.
 

MT4/845, Windows7/64 bit. Script :

#property strict

double d1 = 2.009745110811111111111111111;
double d2 = 3.654;
double d3;
//---
void OnStart()
  {
   d3=d1/d2;
   Print("A: d3 = ",DoubleToString(d3));
   Print("B: d3 = ",DoubleToStr(d3));
   Print("C: d3 = ",DoubleToString(d3,16));
   Print("D: d3 = ",DoubleToString(d3,8));
   Print("E: d3 = ",DoubleToString(NormalizeDouble(d3,8)));
   Print("F: d3 = ",DoubleToString(NormalizeDouble(d3,7)));
   Print("G: d3 = ",DoubleToString(NormalizeDouble(d3,8),7));
   Print("H: d3 = ",DoubleToString(NormalizeDouble(d3,8),8));
  }
//+------------------------------------------------------------------+

Résultat :


Quelqu'un sait-il comment imprimer le nombre 0.55001234 ?

 
Maxim Khrolenko:

MT4/845, Windows7/64 bit. Script :

Résultat :


Quelqu'un sait-il comment imprimer le nombre 0.55001234 ?

 Print("C: d3 = ",DoubleToString(d3,8));

 
Maxim Khrolenko:

MT4/845, Windows7/64 bit. Question sur le texte vers une nouvelle ligne avec \n. J'ai fait un script :

Apparemment une erreur dans MT4 (dans MT5 tout va bien)
 
A100:
Apparemment, un bogue dans MT4 (MT5 est parfait).
Je vois, j'espère que les développeurs y prêteront attention.
 
Alexey Navoykov:
Votre conseil n'a aucun sens en pratique. Personne ne donne volontairement des noms identiques. Le code des fonctions locales vit sa propre vie séparée tandis que le programme externe vit sa propre vie. Et les noms des variables externes peuvent changer avec le temps et de nouvelles variables externes peuvent être ajoutées.Et si, après cela, l'une des centaines de fonctions possède soudainementune variable locale portant le même nom, que pensez-vous que nous devrions renommer la variable globale? Vous ne devriez pas chercher des excuses aux bugs des développeurs.

Je ne cherchais pas une excuse pour les bugs des développeurs, mais ce bug est facilement contourné en n'utilisant pas les mêmes noms de variables qui sont responsables des paramètres d'entrée lorsqu'on travaille dans un projet. Changez simplement le nom dans les paramètres d'entrée, je doute que vous ayez des centaines de variables dans vos paramètres d'entrée et que vous ayez besoin de modifier tout le code :) la partie principale du code est généralement écrite au point d'entrée du logiciel et elle n'est pas si grande, tout est fait par des appels de fonction(méthode). Pour les fonctions (méthodes), il n'y a pas de différence entre le nom d'une variable et les paramètres d'entrée de la fonction.

Bien sûr, si vous écrivez du code où les fonctions utilisent des variables globales, alors bien sûr, vous devrez changer beaucoup de choses, mais ce code est écrit sans aucune vision, il est vraiment difficile à moderniser.

Bien que si vous regardez le développeur (MetaQuotes) avec un point de vue de consommateur, bien sûr, vous voulez beaucoup de tout à la fois :) J'aimerais travailler dans un terminal qui est multiplateforme, mais la réponse à cette demande sera une - soit vous utilisez ce que vous avez, soit vous le passez :)