Pergunta

Em Ruby, como em muitas outras linguagens de programação OO, os operadores são sobrecarregáveis. No entanto, apenas certos operadores de caracteres podem ser sobrecarregados.

Esta lista pode estar incompleta, mas aqui estão alguns dos operadores que não podem ser sobrecarregados:

!, not, &&, and, ||, or
Foi útil?

Solução

Os métodos são sobrecarregáveis, eles fazem parte da sintaxe da linguagem.

Outras dicas

Sim. Os operadores não são sobrecarregáveis. Apenas métodos.

Alguns operadores não são realmente. Eles são açúcar para métodos. Então 5 + 5 é realmente 5.+(5), e foo[bar] = baz é realmente foo.[]=(bar, baz).

Em Ruby 1.9, o ! O operador também é um método e pode ser superestimado. Isso só sai && e || e suas contrapartes de baixa precção and e or.

Há também alguns outros "operadores combinados" que não podem ser superestimados, por exemplo, a != b é na verdade !(a == b) e a += b é na verdade a = a+b.

E não vamos esquecer << por exemplo:

string = "test"
string << "ing"

é o mesmo que chamar:

string.<<("ing")
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top