Ruby issues a warning when assigning to already initialized constant. Unless, of course, you run it with -W0 option. Gennady. > -----Original Message----- > From: list-bounce / example.com > [mailto:list-bounce / example.com] On Behalf Of Charlie > Sent: Saturday, April 29, 2006 23:58 > To: ruby-talk ML > Subject: Re: Constant in Ruby. > > Mike Fletcher wrote: > > Charlie wrote: > >> I'm new to Ruby programming and I saw this article which > concerns me: > >> > >> > http://www.bitwisemag.com/copy/features/opinion/ruby/ruby_debate.html > >> > >> Don't get me wrong, I love Ruby. But, the idea that a > constant is not > >> a constant is worrying isn't it? Or have I missed > something? Please > >> comment. > >> > >> X = 10 > >> Y = "hello world" > >> Z = "hello world" > >> > >> X = 20 > >> Y = "byebye" << "abc" > >> myvar = Z << "xyz" > >> > >> puts(X) > >> 20 > >> puts(Y) > >> byebyeabc > >> puts(Z) > >> hello worldxyz > >> myvar > >> "hello worldxyz" > > > > It's constant in that you can't reassign a different > instance to the > > same name (try setting X = 10 after you've set it to 20 and > Ruby will > > gripe). The instances themselves may still be mutable (see > > Object#freeze if you want to change that). > > okay, I just try this: > > X = 20 > X = 10 > puts(X) > 10 > X.freeze > X = 30 > puts(X) > 30 > > Sorry, but I find it difficult to understand as I'm new to > it. Would be helpful if you can enlighten me with some > examples. Thanks. > > > > > -- > Posted via http://www.ruby-forum.com/. > >