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