From: Krekna Mektek Date: 2007-01-03T22:45:19+09:00 Subject: Re: unroll array in initial vars Good thinking indeed. But what if the parameter list is fixed? I think in this case it does not matter, or does it? The order was indeed wrong, ruby was irritated by it too so I changed it. I've made the 2 dimensional array now. Thanks for your help guys! 2007/1/3, Robert Klemme : > On 03.01.2007 07:46, Krekna Mektek wrote: > > I'd like to know how I can unroll an array into some instance variables. > > > > like this: > > > > pseudocode: > > > > class Person > > def initialize > > @name,@address,@place_of_birth,@whatever = Array > > end > > end > > > > --* So I can call *-- > > > > person1 = Person.new(personal_data) > > > > personal_data = ['Eric','Meanstreet 3','Buenos Aires','etc'] > > > > I hope it's clear what I'd like to know.. > > Not exactly. I'm irritated by the order of statements. You use > "personal_data" before you assigned to it. > > If you just accidentally got the order wrong: you can do it as Farrel > pointed out. However, I would generally recommend having explicit > parameters. So, while you can do > > def initialize(parms) > @name,@address,@place_of_birth,@whatever = parms > end > > I would prefer > > def initialize(name,address,place_of_birth,whatever) > @name = name > @address = address > @place_of_birth = place_of_birth > @whatever = whatever > end > > It's safer and gives you automatic checking of argument lists - at least > Ruby checks the number of arguments for you. If you use the array > approach some or even all values may end up nil without you noticing it. > > Kind regards > > robert > >