En Ruby 1.9 se puede tener Fixnum
, Float
y Symbol
valores que son no congelada o congelada:¿Cuál es el uso o efecto de congelar símbolos y números en Ruby?
irb(main):001:0> a = [ 17, 42.0, :foo ]; a.map(&:frozen?)
=> [false, false, false]
irb(main):002:0> a.each(&:freeze); a.map(&:frozen?)
=> [true, true, true]
entiendo la utilidad de las cadenas de congelación, matrices, u otros tipos de datos mutables. Hasta donde yo sé, sin embargo, las instancias Fixnum
, Symbol
y Float
son inmutables desde el principio. ¿Hay alguna razón para congelarlos (o cualquier otra razón que Ruby no se informaría como ya frozen?
Tenga en cuenta que en Ruby 2.0 Fixnum
s y s Float
tanto comienzan como congelado, mientras que Symbol
s conservan el comportamiento descrito anteriormente Así que, lentamente, está "mejorando" :)