Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Mihail Matkovskij:
Bien qu'ils puissent être contournés, la question est de savoir pourquoi, alors qu'il n'y a pas de tels problèmes dans d'autres noyaux modernes ?
Bien que l'erreur ne soit pas critique, elle est tout de même gênante.
Ce n'est pas une erreur, c'est plutôt une notification. Certaines langues ne disposent même pas de notifications de ce type. Quelque chose dans le champ d'application local a chevauché quelque chose de plus élevé, ainsi soit-il. C'est ainsi que cela a été prévu. Mais dans certains cas, un tel avertissement est plutôt utile.
Par exemple, dans MQL, les variables globales n'ont rien à voir et ma recommandation de ne pas les utiliser n'est pas non plus pertinente :
Créez plusieurs champs d'application :
Et voilà, nous avons deux avertissements.
D'où la conclusion -
1) ignorer ces avertissements
2) éviter d'utiliser les mêmes noms dans les zones de visibilité inférieures/supérieures
3) convaincre le Service Desk de supprimer cette notification comme étant inutile.
3) convaincre le Service Desk de supprimer cette notification comme étant inutile.
Si chaque idiot convainc le Service Desk de supprimer telle ou telle règle, parce que, de son point de vue, elle est inutile, la langue dégénérera bientôt en un déchet primitif.
Je veux dire, comment peut-il ne pas être créé ? N'importe quel langage de programmation utilise librement des variables globales et c'est correct, mais ici le compilateur jure. Bien que l'erreur ne soit pas critique, elle est tout de même gênante.
Le point variable rapporte le prix d'un point et remplace le point standard. La fonction MarketInfo(EA_Symbol(), MODE_POINT) donne le prix de 1 point pour n'importe quel symbole. En outre, le point variable peut être utilisé dans n'importe quelle fonction, dans le corps de l'EA, s'il s'agit d'une variable globale bien sûr. Je suis d'accord pour dire que de tels cas causent assez souvent des inconvénients (si vous avez certainement de l'expérience dans la programmation MQL). Et bien qu'ils puissent être évités, la question est de savoir pourquoi, si d'autres langues modernes n'ont tout simplement pas de tels problèmes ?
Malheureusement, seuls les programmeurs expérimentés comprennent l'utilité et l'importance d'un tel avertissement.
Eh bien, je recommande à tous les autres d'être heureux de ce niveau d'aide du compilateur et de corriger leurs propres erreurs. Ce sont de véritables lieux d'erreurs potentielles et c'est précisément pour les développeurs novices qu'il est essentiel d'apprendre.
Je voudrais un schéma de couleurs. Non seulement dans l'éditeur, mais aussi dans d'autres fenêtres, de sorte que le texte et la couleur de fond peuvent être modifiés.
Les données des membres de la classe ne doivent pas être colorées dans la couleur des variables d'instance lorsque les noms coïncident.
Plusieurs fois déjà, en terminant la journée de travail et en fermant les fenêtres de programmes, les navigateurs, etc., j'ai accidentellement fermé le terminal MT5 fonctionnant en mode optimisation. Ainsi, tous les résultats ont été perdus. En redémarrant le terminal, tout recommence.
De nombreux programmes, lorsque vous cliquez pour fermer une fenêtre, vous demandent si vous êtes sûr de la fermer, ce qui peut entraîner la perte de données non sauvegardées.
C'est une bonne idée de le faire si le terminal est optimisé.
Ce n'est même pas une erreur, c'est plutôt une notification. Certaines langues n'ont même pas de notifications de ce type. Quelque chose dans une zone locale chevauchait quelque chose dans un niveau plus élevé, donc bien. C'est ainsi que cela a été prévu. Mais dans certains cas, un tel avertissement est plutôt utile.
Par exemple, dans MQL, les variables globales n'ont rien à voir et ma recommandation de ne pas les utiliser n'est pas non plus pertinente :
Créez des champs d'application multiples :
Et voilà, nous avons deux avertissements.
D'où la conclusion.
1) ignorer ces avertissements
2) ne pas faire les mêmes noms dans les zones de visibilité ci-dessous/au-dessus
3) convaincre Servicedesk de supprimer cette notification, jugée inutile.
Eh bien, 2 variables avec le même nom dans une portée n'est pas bon et tout programmeur le sait. Mais le problème est que ce champ d'application couvre des modules standard que tout programmeur moyen ne modifierait pas puisqu'il ne se considère pas comme un développeur. Supprimer les avertissements n'est pas non plus une option. Ne pas y prêter attention est aussi un véritable inconvénient car vous risquez de ne pas remarquer des avertissements importants.
Je vois deux façons de résoudre le problème ici.
1. Faire en sorte que le plugin ne voit pas le programme du plugin, s'il n'est pas explicitement spécifié.
2. Si les développeurs ne sont pas disposés à changer la syntaxe, introduisez une règle pour la déclaration des paramètres dans les fonctions, similaire aux champs de classe, par exemple, les noms de paramètres doivent commencer par i ou i_ (de l'alphabet Input) et ainsi fixer tous les paramètres dans les modules standards
Le compilateur fonctionne correctement et ces avertissements sont exceptionnellement corrects.
Il n'y a qu'une seule solution : ne pas autoriser le chevauchement des variables et ne pas essayer de préserver le droit à l'erreur en exigeant que les autres respectent ce droit.
Le compilateur fonctionne correctement et ces avertissements sont exceptionnellement corrects.
Il n'y a qu'une seule solution : ne pas autoriser le chevauchement des variables et ne pas essayer de préserver le droit à l'erreur en exigeant que les autres respectent ce droit.