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
Une macro et une fonction en ligne sont en effet des choses différentes. Mais ce n'est pas ce que je veux dire. Voici un exemple où les valeurs des arguments sont inconnues au moment de la compilation.
Dans le premier cas, le code doit être collé dans la fonction courante (je suppose) et dans le second cas, la fonction est appelée avec des paramètres passés par la pile (je suppose). Mais pour des raisons d'optimisation, le compilateur peut aussi implémenter la seconde variante par substitution. C'est vrai? Je ne sais pas. C'est pourquoi j'ai demandé.
L'objet ellipse n'est mis en évidence avec la souris que si vous cliquez sur les points d'ancrage.
Est-ce un bug ou une fonctionnalité ? Il est mis en œuvre de manière très peu pratique.
Это что, юмор такой чёрный?
1. Извини, - бред. Я понимаю, тут паранойя в моде, и является ломовым аргументом за "почему так не надо делать". Никакой опасности не вижу в упор. Смотрел внимательно, если чё. Любое имя, в конечном счёте есть ссылка. Индексация есть обычное расширение понятия имени. Не более. Давай запретим присваивание вообще. В целях безопасности. Ссылки же крайне опасны так?
2. Духу объектно-ориентированного программирования, при такой логике, яростно противоречат С++, С#, Делфи, пара дюжин менее популярных языков, в которых индексаторы совершенно нормально работают и справа и слева. Причём здравому смыслу и моему духу это почему-то не противоречит.
Индексаторы делаются для связи с внешней средой. Их функция именно интерфейсная. Я могу инкапсулировать и прятать что угодно, но индексы мне нужны для оперирования объектами как массивами. Фактически все массивы как-то устроены. Например обычные динамические массивы mql. Может запретим их слева от оператора присваивания ставить? Заменим функцией какой-нибудь типа SetArrayValue(array, i, j, value); Заодно и в читабельности выиграем. Да и отладка станет куда проще. Мля. Уф..
3. А как насчёт того, чтоб сделать нормальный индексатор? Горничная это конечно классно, но королева всё-таки лучше.
4. Вот в этом месте у меня крыша конкретно начала ехать. Это что, нечитабельно??
Вот это читабельнее, да?
t.setDataElement(i, i*i);
Круто. Пожалуй пойду лечиться.
5. Ваще круто.
6. Я плакаль.
e(tableau, i, j, valeur) ; Cela améliorera également la lisibilité. Et le débogage deviendra aussi beaucoup plus facile. Merde. Ugh...
L'avantage d'un passeur, c'est que vous pouvez faire quelque chose de plus qu'une simple équation.
Par exemple, vous pouvez consigner des informations, convertir des données (s'il s'agit de chaînes de caractères ou de données plus complexes), envoyer des messages à d'autres objets si quelque chose d'important se produit (comme la mise à jour de données).
Comment votre objet saura-t-il que la date a changé ? Apparemment, vous allez stocker des citations...
Oh oui, c'est un faux problème, car votre objet est plutôt un struct et ne gère pas vraiment quelque chose.
Tout est fait dans une autre classe poubelle, qui gère tout ou pire encore, tout se passe dans onStart(), onTick(), ... ! :)
Passez une bonne journée
3. pourquoi ne pas faire un indexeur normal ? maid est cool, mais queen est mieux.
Joint d'étanchéité Muti. Par rapport à une lvalue normale, cependant, elle sera beaucoup plus coûteuse en termes de temps. Mais il sera exactement comme vous le souhaitez.
______
Ah, non. Alors vous avez besoin d'une surcharge de l'opérateur fantôme de type. C'est dommage.
L'avantage du setter est que vous pouvez faire quelque chose de plus qu'une simple équation.
Par exemple, vous pouvez consigner des informations, convertir des données (s'il s'agit de chaînes de caractères ou de données plus complexes), envoyer des messages à d'autres objets si quelque chose d'important se produit (comme la mise à jour de données).
Comment votre objet saura-t-il que la date a changé ? Apparemment, vous allez stocker des citations...
Oh oui, c'est un faux problème, car votre objet est plutôt une structure et ne contrôle pas vraiment quelque chose.
Tout est fait dans une autre classe poubelle, qui gère tout ou pire encore, tout se passe dans onStart(), onTick(), ... ! :)
Passez une bonne journée
Le fait est que l'indexeur est le même que le setter en termes de fonctionnalités . Elle est implémentée comme une fonction, dont le contenu peut être n'importe quoi (le cas typique le plus simple est la vérification des limites d'un tableau et la gestion d'autres erreurs), et elle ne renvoie pas seulement une référence à un élément du tableau.
Vous aussi, passez une bonne journée.
(Désolé pour le ton d'hier. J'étais un peu sur les nerfs - des problèmes au travail. Tu n'as rien à voir avec ça. Eh bien, à moins que vous ne soyez trop catégorique :)
Joint d'étanchéité Muti. Toutefois, par rapport à une lvalue normale, elle sera beaucoup plus coûteuse en termes de temps. Mais il aura l'aspect que vous souhaitez.
______
Ah, non. Vous devez alors surcharger l'opérateur de conversion de type. Dommage.
En fait, je pense qu'ils vont le faire. Il y a un défaut évident avec les retours de référence dans la langue.
Vous n'êtes pas obligé de faire des variables de référence, mais le retour des valeurs l des fonctions est sacré... :)
Je ne pense pas que cela ne puisse pas être résolu en principe - le langage a des mql-arrays habituels et ils se sentent très bien des deux côtés de l'opérateur d'affectation. Mais ce sont des classes C++ par implémentation !
Voici un autre exemple de la même série. Ce code se compile mais ne fonctionne pas.
Mon point de vue n'est pas qu'ils ne devraient pas compiler - mon point de vue est qu'ils devraient fonctionner. :)
...
Je ne dis pas que ça ne devrait pas compiler, je dis que ça devrait fonctionner... :)
MQL5 possède une merveilleuse constante IS_DEBUG_MODE appartenant au groupe Autres constantes. Peut-on ajouter une telle constante pour un testeur ? Quelque chose comme IS_TESTER_MODE...
MQL5 possède une merveilleuse constante IS_DEBUG_MODE appartenant au groupe Autres constantes. Peut-on ajouter une telle constante pour un testeur ? Quelque chose comme IS_TESTER_MODE...
Ces constantes ne fonctionneraient-elles pas ?
ENUM_MQL5_INFO_INTEGER
Identifiant
Description
Type de propriété
MQL5_PROGRAM_TYPE
Type de programme mql5
ENUM_PROGRAM_TYPE
MQL5_DLLS_ALLOWED
Permission d'utiliser la DLL pour le programme en cours d'exécution.
bool
MQL5_TRADE_ALLOWED
Autorisation d'échange pour ce programme en cours
bool
MQL5_DEBUGGING
Signe d'un programme en cours d'exécution fonctionnant en mode débogage
bool
MQL5_TESTING
Signe de l'exécution d'un programme dans le testeur
bool
MQL5_OPTIMISATION
Signe de l'exécution d'un programme pendant l'optimisation
bool
MQL5_VISUAL_MODE
Signe de l'exécution d'un programme en mode de test visuel
bool