Hey all,
So I’m trying to freeze a class variable, and I discover that
Object#freeze
breaks down every time on my machine. Even with simple strings.
irb(main):001:0> test = “good”
=> “good”
irb(main):002:0> test.freeze
=> “good”
irb(main):003:0> test.frozen?
=> true
irb(main):004:0> test = “bad”
=> “bad”
irb(main):005:0> test.frozen?
=> false
What gives?
I must be missing something.
fiery
On 4/23/07, Stephen S. [email protected] wrote:
=> true
irb(main):004:0> test = “bad”
=> “bad”
irb(main):005:0> test.frozen?
=> false
What gives?
I must be missing something.
You are missing the difference between a variable and an object.
test = “good”
test is a local variable which references a string object.
test.freeze?
This freezes the object referenced by test.
test = “bad”
this makes the variable test refer to an entirely different string.
For another thing to ponder try this:
test = “good”
test.freeze
another_variable = test
another_variable.frozen? => true
The point is that you can’t freeze variables.
This distinction between variables and the objects they reference is
a stumbling block for many people coming to Ruby if they haven’t been
exposed to other languages in the family.
–
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/
On 4/24/07, Stephen S. [email protected] wrote:
Hey all,
So I’m trying to freeze a class variable, and I discover that Object#freeze
breaks down every time on my machine. Even with simple strings.
fiery
Try altering it instead of reassigning it.
I think this is a little more like what you expected.
Not exactly, but you can see freezing.
test = “good”
p test
test.freeze
p test
p test.frozen?
test << “bad”
p test
p test.frozen?
Harry
test references two different objects… try this…
test = “good”
test.freeze
test.object_id
test = “bad”
test.object_id
You will notice different object_id’s in the first and later case.
-abhijit
On 4/24/07, Harry [email protected] wrote:
Try altering it instead of reassigning it.
test << “bad”
p test
p test.frozen?
Harry
–
Kakueki.com is for sale | HugeDomains
A Look into Japanese Ruby List in English
–
अà¤à¤¿à¤œà¥€à¤¤
[written in http://www.paahijen.com/scratchpad]
[http://www.paahijen.com]