RosettaCodeData/Task/Enforced-immutability/Ruby/enforced-immutability-1.rb

22 lines
491 B
Ruby
Raw Permalink Normal View History

2015-02-20 00:35:01 -05:00
msg = "Hello World"
2013-10-27 22:24:23 +00:00
msg << "!"
puts msg #=> Hello World!
puts msg.frozen? #=> false
2013-04-10 16:57:12 -07:00
msg.freeze
2013-10-27 22:24:23 +00:00
puts msg.frozen? #=> true
begin
msg << "!"
rescue => e
p e #=> #<RuntimeError: can't modify frozen String>
end
puts msg #=> Hello World!
msg2 = msg
2015-02-20 00:35:01 -05:00
# The object is frozen, not the variable.
2013-10-27 22:24:23 +00:00
msg = "hello world" # A new object was assigned to the variable.
puts msg.frozen? #=> false
puts msg2.frozen? #=> true