Scopro oggi che mentre ==, <=, < e compagnia sono dei metodi (questo lo
sapevo), != invece non lo è. Ossia:
$ irb
1.send("==", 2)
=> false
1.send("==", 1)
=> true
1.send("!=", 1)
NoMethodError: undefined method !=' for 1:Fixnum from (irb):3:insend’
from (irb):3
Cercando su http://www.ruby-doc.org/core/ del metodo != non c’è proprio
traccia e neppure di !. Questo vuol dire che != viene trasformato
dall’interprete nella negazione del risultato del metodo == ?
Leggendo la tua risposta ho googlato ancora un po’ con delle keyword
diverse da quelle che avevo usato prima di postare la mia domanda ed ho
trovato http://www.ruby-forum.com/topic/174382
!= è diventato un metodo a partire dalla 1.9. Fino alla 1.8 l’interprete
applicava il metodo == e ne negava il valore.
Grazie
Paolo
David W. wrote:
Guardando il changelog, sembrano cose relativamente recenti: