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
ce sont vos mots, il n'y a pas d'avertissement, mais il y en a vraiment un.
Dans quel monde vivez-vous, que fumez-vous, partagez-vous ?
Ainsi, vous affirmez si audacieusement pour moi sur mon code que vous ne voyez pas ? Vous ne vous trompez pas de champignons ?
Je l'ai eu, pas un idiot, vous avez un compilateur spécial sans avertissements, spécialement personnellement de MQ
PS : J'en veux un aussi, donnez-le moi.
Le code que vous avez donné n'est pas du tout correct !
Ça devrait être comme ça :
Faux, parce qu'alors il y a une comparaison :
Non, ça ne l'est pas.
Cela n'a rien à voir avec ça.
Le codeur a juste réagi de manière excessive ou a copié la conversion de type de quelque part.
en fait
code
ne génère aucune erreur ou avertissement.
MQL ne nécessite pas de conversion explicite
PS. Testez vos hypothèses avant de commencer à argumenter.
un très mauvais exemple, vous faites une erreur de comparaison et vous tombez dans l'erreur :
PS. Testez vos hypothèses avant de commencer à argumenter.
Non, tu ne l'es pas.
Cela n'a rien à voir avec cela.
Le codeur a juste réagi de manière excessive ou a copié quelque chose d'autre .
en effet
code
ne génère aucune erreur ou avertissement.
MQL ne nécessite pas de conversion explicite
PS. Testez vos hypothèses avant de commencer à argumenter.
o_o !
Droit - mauvais....
J'ai l'impression que vous ne lisez pas ce que les autres écrivent !
Selon les règles de programmation :
LA VARIABLE DE LA FONCTION ACCEPTANTE DOIT ÊTRE DU MÊME TYPE QUE LA VALEUR DE RETOUR DE CETTE FONCTION !
C'EST ÇA !
C'est la fin de cette spéculation.
Pourquoi ne l'avez-vous pas écrit de cette façon ?
Parce que vous savez que la fonction renvoie toujours LONG.
Et la référence dit clairement quela valeur retournée pour l'argument POSITION_TYPE de la fonctionPositionGetInteger() est
est ENUM_POSITION_TYPE, et non LONG
Et si tu veux t'entraîner à la typographie, écris-le de cette façon :
Le fait que le compilateur ne vous donne pas d'erreur ne signifie pas que vous l'avez écrit correctement !
Il indique le "libre arbitre" du compilateur et c'est tout ! (Il vous permet de comparer des LONG et des INTEGER).
C'est la bonne façon de gérer cette situation :
Un très mauvais exemple, vous avez manqué la comparaison, et vous obtiendrez une erreur :
Ne justifiez pas vos thèses en vous référant à un autre sujet de discussion.
Il ne s'agit que de comparaison et seulement dans ce cas, long est enum.
Vous êtes déjà entré dans le maquis des pensées, bien que la question ait été directe, ce à quoi a répondu l'entier...
Nextor257:
Veuillez me conseiller, je ne comprends pas de quel type de comparaison il s'agit ?
if(type==(long)POSITION_TYPE_BUY)
Pourquoi (long) est-il précédé de POSITION_TYPE_BUY ?
Il s'agit d'un changement de type de variable à la volée.
long et lon au lieu deENUM_POSITION_TYPE etENUM_POSITION_TYPE
8 caractères (que vous pouvez taper les yeux fermés) au lieu de 36 caractères (et en majuscules) ! En plus de cela, il y a toutes sortes d'informations qui n'ont pas de sens. Ce n'est pas un bon style de programmation - écriture inutile et informations redondantes.
Dans ce cas, Mikhail a tout à fait raison (avec tout mon dégoût pour le style de programmation de Mikhail).
Et il ne s'agit pas d'avertissements potentiels, ni d'ailleurs du nombre de caractères, mais d'une saisie stricte. L'énumération ENUM_POSITION_TYPE est un type de données unique. C'est ENUM_POSITION_TYPE, et non pas long ou int. Vous devez l'utiliser comme ENUM_POSITION_TYPE et d'aucune autre manière. Et si vous tapez longtemps, la fonction d'autocomplétion commencera au troisième caractère, et il n'y a aucun problème. Et le problème réside dans l'utilisation de long, car il peut être presque tout, alors que ENUM_POSITION_TYPE ne l'est pas.
MQL n'exige pas une conversion explicite
J'ai d'abord écrit que oui, mais ensuite j'ai vu le mot "comparaison". En fait, aucune conversion explicite n'est nécessaire dans la comparaison car MQL le fait implicitement. Et il vaut mieux ne pas le faire du tout, car le résultat est souvent indéfini. Mais dans d'autres langages normaux strictement typés, une conversion de type explicite est toujours nécessaire.
P.S. Pour une fois, Michael a donné une réponse compétente, mais les gens ont pris l'habitude de le blasphémer ici aussi. Et en vain, car il a raison dans ce cas.