From: Gennady Bystritsky Date: 2006-08-12T15:39:51+09:00 Subject: Re: Beginner's question: assigning same value to many variables > -----Original Message----- > From: Morton Goldberg [mailto:m_goldberg@ameritech.net] > Sent: Friday, August 11, 2006 9:21 PM > To: ruby-talk ML > Subject: Re: Beginner's question: assigning same value to > many variables > > I presume you want each variable initialized to a _different_ empty > string. If so, I can't think of an easy way to do it using local > variables. That may just go to show my lack of ruby smarts. However, > it's not too hard to initialize a group of instance variables to > different empty strings in one line of code. Consider: > > #! /usr/bin/ruby -w > > class Foo > def initialize > %w[@a @b @c @d].each {|v| instance_variable_set(v, '')} > end > end > > foo = Foo.new > p foo #=> # > > And the following will work for global variables. > > %w[$a, $b, $c, $d].each {|v| eval("%s=String.new" % v)} > p [$a, $b, $c, $d] #=> ["", "", "", ""] > > But for local variables, I don't know. How about this: irb(main):001:0> a, b, c = Array.new(3) { '' } => ["", "", ""] irb(main):002:0> a => "" irb(main):003:0> b => "" irb(main):004:0> c => "" irb(main):005:0> a.object_id => 203740 irb(main):006:0> b.object_id => 203730 irb(main):007:0> c.object_id => 203720 irb(main):008:0> It will work for global and instance variables as well. Best, Gennady. > > Regards, Morton > > On Aug 11, 2006, at 7:12 PM, Alex Khere wrote: > > > I'm just starting out in programming, using Ruby to learn. > > > > I'm trying to write a short program that will use a handful of > > variables, and I want to be sure that all of the variables > start with > > the value '' (strings of zero length). > > > > Is there a way to list all of the variables on a single line and set > > them to the same value? I tried using commas to seperate, but that > > didn't work. > > > > I also tried creating an array with all of the variable > names and then > > using "arrayname.each do |name|" to cycle through the > assignment, but > > since the varibles hadn't been defined, I got an "undefined local > > variable or method" error (at least, I think that's why I got an > > error). > > >