Buenas gente,

Les cuento que soy nuevo en Ruby y en RoR también. Jugando un poco con RoR,
se me ocurrió hacer lo siguiente para ver como trabajaba con los objetos:

>> p = Product.find(2)

>> p1 = Product.find(2)

>> p == p1
p == p1
=> true

>> p.title
p.title
=> "Pragmatic Project Automation"

>> p.title = "hola"
p.title = "hola"
=> "hola"

>> p == p1
p == p1
=> true

>> p1.title
p1.title
=> "Pragmatic Project Automation"

Sorpresa! y no tanta. Resulta que siempre se me devuelven distintas
instancias. Y la comparación es por un id y no por referencia.
En la Teoría, los objetos tienen una identidad propia que es implementada
con referencias al mismo sitio de memoria, de esta forma, el cambio se
realiza una vez y no hay inconsistencias.

La pregunta es, por que no se devuelve la misma instancia? cuestiones de
eficiencia?

Saludos.
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a