From: Eero Saynatkari Date: 2006-08-12T08:44:22+09:00 Subject: Re: Beginner's question: assigning same value to many variab 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). In ruby there are no statements, just expressions. Therefore: @a = @b = 0 The one caveat, though, is that the references are the same which means that, for example, assigning "hello" this way might lead to some confusing results. Some alternatives include: @a, @b = 0, 0 @a, @b = Array.new(2) {"Hello"} Another popular idiom is to defer the initialisation to the point of first use of the variable. For this the || operator is often used: do_something_with(@a || default_value) do_something_else_with(@b ||= other_default) The latter operator is shorthand for (@b = @b || default) which will also assign the default to @b for future use. -- Posted via http://www.ruby-forum.com/.