Web,ruby, Ajax ou qualquer outra coisa que me venha a cabeça (com prioridade para esta última)

09 maio, 2007

As diferenças entre =, ==, equal? e eql?

Em ruby um sinal de igual (=) significa que se atribui à identificação da esquerda o que está à direita.

saudacao1 = "Viva Catarina."
saudacao2 = "Adeus."
saudacao3 = "Viva Catarina."

Se quisermos perguntar se o conteúdo de saudacao1 é igual ou não a saudação3 exprimimos tal usando a segunda expressão == (dois sinais de igual como sucede com várias outras linguagens de programação). Neste caso o valor devolvido é verdade. Se usarmos a expressão equals? aquilo que estamos a perguntar é se duas referências para objectos apontam para o mesmo objecto (não se esqueçam que em ruby tudo é um objecto), o que no caso de saudacao1 e saudacao3 é falso. Finalmente eql? responderá verdade pois compara valores.

Sem comentários: