From: dblack@... Date: 2006-07-13T04:32:02+09:00 Subject: Re: Newb: an explaination for this if statement.. Hi -- On Thu, 13 Jul 2006, Dominic Son wrote: > Hi. I'm confused as to why this variable* is nessesary: > > ----------- > > def add_product(product) > > existing_product = @items.find {|item| item.product == product} > > if existing_product > existing_product.increment_quantity > > else > existing_product = CartItem.new(product) > @items << existing_product > > end > > existing_product* > > end > > -------------- > > i'm a newb, and to a newb, i can't understand why a var just sits there. > can someone please explain what the purpose of exisiting_product* is? > > i'd figure exisiting_product* wouldn't be needed since on the 2nd line, > existing_product is initialized with @items.find..blahblahblah.. The last line is equivalent to: return existing_product If there's no explicit "return" statement, then the method returns the value of the last expression evaluated -- which, in this case, is: existing_product David -- http://www.rubypowerandlight.com => Ruby/Rails training & consultancy http://www.manning.com/black => RUBY FOR RAILS, the Ruby book for Rails developers http://dablog.rubypal.com => D[avid ]A[. ]B[lack's][ Web]log dblack@wobblini.net => me