Brian Mitchell wrote:
> On 4/20/06, Nathan Olberding <nathan.olberding / gmail.com> wrote:
>> Would result in "This" being displayed. Instead, "This" becomes the
>> value of opt1. I'd like to set opt1 and opt2 to default to "". How do I
>> do that?
> 
> This is usually a case where you either use * or a hash parameter. *
> is good for cases where you can distinguish by value. In your case it
> looks like a hash would be appropriate.
> 
> def do_this(opts)
>   puts opt[:two]
> end
> 
> do_this(:two => "This")

*? I don't even know how I'd google that :-)

> Notes: The hash parameter will always be the last parameter (ignoring
> & args and other odd parameter changes when using super). This means
> you can pass many things along side the hash, though the more you add
> the more complex it gets to manage the interface. Rails uses this
> technique heavily. Have a look at the find() code in ActiveRecord
> sometime to learn how they manage such an interface (much cleaner in
> more recent releases).

*Woosh!* That was the sound of this discussion going over my head at 
Mach 2!

> Future major versions of Ruby are going to have actual named
> parameters. So much to look forward to in 2.0!

Definitely looking forward to that!

-- 
Posted via http://www.ruby-forum.com/.