Y a-t-il une liste de tous les opérateurs ruby qui peuvent être remplacés? (Pas ceux qui ne peuvent pas!)liste des opérateurs ruby qui peuvent être remplacés/implémentés
Répondre
Voici a table of the Ruby operators.
Ceux qui sont des méthodes et surchargeable sont:
[ ] [ ]= Element reference, element set
** Exponentiation
! ~ + - Not, complement, unary plus and minus (method names for the last two are [email protected] and [email protected])
*/% Multiply, divide, and modulo
+ - Plus and minus
>> << Right and left shift
& Bitwise `and'
^ | Bitwise exclusive `or' and regular `or'
<= < > >= Comparison operators
<=> == === != =~ !~ Equality and pattern match operators (!= and !~ may not be defined as methods)
La table était du livre Pioche 2001, mais c'est la même table que dans le livre Pioche Ruby 1.9 - aucune raison de croire que cet ensemble des opérateurs infixes changera jamais.
Par "ceux qui sont des méthodes et surchargeables", je suppose que vous voulez dire que l'on ne peut que surcharger les opérateurs qui sont des méthodes, non? Bien que les opérateurs "purs" ne puissent pas être surchargés, on peut abuser des mots-clés les plus proches (par exemple 'defined?', 'Not',' ou', 'begin') comme noms pour de nouvelles méthodes sans aucune infixité. – fny
En fait,! = Et! ~ Peuvent être surchargés/définis, même si l'ancienne pioche dit que vous ne pouvez pas. En 2008, il y avait une plainte à ce sujet sur la liste de diffusion et Matz a commenté que Ruby était flexible. –
- 1. Les opérateurs Ruby peuvent-ils être aliasés?
- 2. Les opérateurs d'affectation C++ peuvent-ils être des fonctions libres?
- 3. Sikuli Liste des fonctions et des opérateurs
- 4. Scientifiques Algorithmes qui peuvent produire des images, pseudocode peut-être?
- 5. LINQ to SQL: propriétés des propriétés qui peuvent être null
- 6. php créer des fichiers qui ne peuvent pas être supprimés
- 7. Liste des branches git qui peuvent être supprimées en toute sécurité
- 8. Liste des programmes installés/mises à jour qui peuvent être désinstallés
- 9. opérateurs Ruby logiques
- 10. Ruby - et les opérateurs
- 11. Opérateurs de comparaison Ruby? == = ===
- 12. opérateurs booléens qui renvoient l'un des opérandes
- 13. Opérateurs et méthodes dans Ruby
- 14. jquery - définir une limite d'éléments, qui peuvent être glissés dans une liste
- 15. Les opérateurs peuvent-ils être utilisés en tant que fonctions? (C++)
- 16. WPF créer une liste de contrôles qui peuvent être parcourus avec la souris mais restent fonctionnels
- 17. Puis-je obtenir une liste de lignes avec des valeurs varchar qui ne peuvent pas être converties en datetime?
- 18. Si vous recherchez une structure de données qui est une carte, mais dans laquelle les clés peuvent être des valeurs, les valeurs peuvent être des clés
- 19. Toute bibliothèque qui surchargeait les opérateurs booléens?
- 20. Exposer des objets (DataContracts) qui ne peuvent pas être directement utilisés par un service WCF?
- 21. UnitTest ++ crée des fenêtres cmd, qui ne peuvent pas être fermées
- 22. En utilisant log4net pour créer des fichiers journaux qui peuvent être vues avec SvcTraceViewer.exe
- 23. Comment supprimer l'affichage des valeurs répétitives dans les tables html qui peuvent être triées?
- 24. Des critères supplémentaires peuvent-ils être ajoutés à un select XSL qui génère une clé?
- 25. Des tables séparées pour un seul champ peuvent être logiques?
- 26. Des annotations peuvent-elles être utilisées pour l'injection de code?
- 27. MSBuild - comment copier des fichiers qui peuvent exister ou non?
- 28. Les images peuvent-elles être malveillantes?
- 29. Utilisation des opérateurs booléens
- 30. Modifier l'intervalle des opérateurs RX?
** La surcharge ** est l'utilisation du même nom de méthode pour différentes actions, où la méthode ne peut être distinguée que par sa signature. En fait, ce n'est pas possible dans Ruby. Surpasser ou redéfinir est le terme approprié ici. –
Merci pour le détail, @platzhirsch. J'ai édité la question. Étrange comment on appelle généralement la surcharge de l'opérateur alors, non? – aaaidan
Bien, comme moi, peut toujours être difficile en ce qui concerne l'utilisation des termes et leur signification :-) Après tout, il est dérivé de langages comme C++ où il fait peut-être la même chose, mais est basé sur des sémantiques différentes. –