2008-09-18 27 views

Répondre

11

Les méthodes sont surchargeable, ceux qui font partie de la syntaxe du langage.

+1

Comme Jorg l'a mentionné dans sa réponse, '!' Peut être surchargé. –

12

Yep. 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).

1

Et il ne faut pas oublier << par exemple:

string = "test" 
string << "ing" 

est la même que l'appel:

string.<<("ing") 
6

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

Il existe également d'autres "opérateurs combinés" qui ne peuvent pas être remplacés, par ex. a != b est actuellement !(a == b) et a += b est actuellement a = a+b.