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/.