Question

En Ruby, comme dans de nombreux autres langages de programmation OO, les opérateurs sont surchargeables. Cependant, seuls certains opérateurs de caractères peuvent être surchargés.

Cette liste est peut-être incomplète, mais voici quelques opérateurs qui ne peuvent pas être surchargés:

!, not, &&, and, ||, or
Était-ce utile?

La solution

Les méthodes sont surchargeables, elles font partie de la syntaxe du langage.

Autres conseils

Oui. Les opérateurs ne sont pas surchargeables. Seules les méthodes.

Certains opérateurs ne le sont pas vraiment. Ils sont du sucre pour les méthodes. Donc 5 + 5 est vraiment 5.+(5), et foo[bar] = baz est vraiment foo.[]=(bar, baz).

Dans Ruby 1.9, l'opérateur ! est en réalité une méthode et peut être remplacé. Cela ne laisse que && et || et leurs homologues de faible priorité and et or.

Il existe également d'autres & opérateurs combinés & "; cela ne peut pas être annulé, par exemple a != b est en fait !(a == b) et a += b en fait a = a+b.

Et n'oublions pas << par exemple:

string = "test"
string << "ing"

équivaut à appeler:

string.<<("ing")
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top