All-
Is there a way to name a variable partly after the value of some other variable:
I tried to do something like this:
greeting_no = "2"
sp#{greeting_no}_greeting = 'Hello'
…with the idea of making 2nd line equivalent to writing:
sp2_greeting = "Hello"
…but this didn’t work.
Thanks!
-Kurt
Kurt Euler wrote:
I tried to do something like this:
greeting_no = “2”
sp#{greeting_no}_greeting = ‘Hello’
greeting_no = “2”
eval “sp#{greeting_no}_greeting = ‘Hello’”
But why not just use an Array or Hash?
sp_greeting[mykey] = ‘Hello’
kind regards,
Norbert
try something like:
greeting_no = “2”
attr “sp#{greeting_no}_greeting”.intern
and then you can do:
send(“sp#{greeting_no}_greeting=”,‘Hello’)
~transami
···
On Thu, 2002-07-18 at 00:37, Kurt Euler wrote:
All-
Is there a way to name a variable partly after the value of some other variable:
I tried to do something like this:
greeting_no = “2”
sp#{greeting_no}_greeting = ‘Hello’
…with the idea of making 2nd line equivalent to writing:
sp2_greeting = “Hello”
…but this didn’t work.
Thanks!
-Kurt
–
~transami
(") dobee dobee do…
\v/
^ ^
There’s always eval, but… I have to ask; why do [you think] you
need this? I ask my question only semi rhetorically, because
whenever I thought I needed something like that, I typically found
that I was thinking about the problem wrong. In other words, a
design smell that led to a code smell.
You might also consider an array, and index by “greeting_no”.
···
— Kurt Euler keuler@portal.com wrote:
All-
Is there a way to name a variable partly after the value of some
other variable:
I tried to do something like this:
greeting_no = “2”
sp#{greeting_no}_greeting = ‘Hello’
…with the idea of making 2nd line equivalent to writing:
sp2_greeting = “Hello”
…but this didn’t work.
=====
Use your computer to help find a cure for cancer: http://members.ud.com/projects/cancer/
Yahoo IM: michael_s_campbell
Do You Yahoo!?
Yahoo! Autos - Get free new car price quotes
Hello –
Kurt Euler wrote:
I tried to do something like this:
greeting_no = “2”
sp#{greeting_no}_greeting = ‘Hello’
greeting_no = “2”
eval “sp#{greeting_no}_greeting = ‘Hello’”
I agree that using a Hash is almost certainly a much better design –
but I just want to point out that in the above example, the variable
you create that way will only be visible in the eval block:
$ ruby -vwe ‘a=“b”; eval “#{a}=1; puts b”; puts b’
ruby 1.6.7 (2002-03-01) [i686-linux]
1
-e:1: undefined local variable or method `b’ for
#Object:0x401c8ce0 (NameError)
David
···
On Thu, 18 Jul 2002, Norbert Gawor wrote:
–
David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web: http://pirate.shu.edu/~blackdav