[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Array into list of arguments - nicest way?

Max Williams

2/23/2009 11:45:00 AM

hey all

I want to pass the contents of an array to a method, to be interpreted
as a standard list of arguments. What's the simplest and nicest way of
doing this? (i can think of a few dirty hack ways but don't want to use
them)

eg

#have
arr = [arg1, arg2, arg3]
#want
a_method(arg1, arg2, arg3)
--
Posted via http://www.ruby-....

6 Answers

Jan Friedrich

2/23/2009 11:47:00 AM

0

Max Williams <toastkid.williams@gmail.com> wrote:
> #have
> arr = [arg1, arg2, arg3]
> #want
> a_method(arg1, arg2, arg3)

a_method(*arr)

Regards,
Jan Friedrich

Jesús Gabriel y Galán

2/23/2009 11:55:00 AM

0

On Mon, Feb 23, 2009 at 12:44 PM, Max Williams
<toastkid.williams@gmail.com> wrote:
> hey all
>
> I want to pass the contents of an array to a method, to be interpreted
> as a standard list of arguments. What's the simplest and nicest way of
> doing this? (i can think of a few dirty hack ways but don't want to use
> them)
>
> eg
>
> #have
> arr = [arg1, arg2, arg3]
> #want
> a_method(arg1, arg2, arg3)

Look for documentation, etc for the splat operator (there's plenty out there):

a_method (*arr)

Jesus.

Tim Hunter

2/23/2009 12:15:00 PM

0

Max Williams wrote:
> hey all
>
> I want to pass the contents of an array to a method, to be interpreted
> as a standard list of arguments. What's the simplest and nicest way of
> doing this? (i can think of a few dirty hack ways but don't want to use
> them)
>
> eg
>
> #have
> arr = [arg1, arg2, arg3]
> #want
> a_method(arg1, arg2, arg3)

Look up the splat operator, a.k.a. unary unarray:

a_method(*arr)

--
RMagick: http://rmagick.ruby...

Max Williams

2/23/2009 12:28:00 PM

0

aha, that makes sense...

thanks a lot, everyone. I've used the splat before at the end of
parameter lists, eg

def a_method(a_thing, *args)

But i guess i didn't really properly understand what it does. I can't
find an explaanation in pickaxe, although it's not the simplest thing to
look for in the index (there's no listing for 'splat' and a lot of
listings for '*').

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

Brian Candler

2/23/2009 12:37:00 PM

0

Max Williams wrote:
> But i guess i didn't really properly understand what it does. I can't
> find an explaanation in pickaxe, although it's not the simplest thing to
> look for in the index (there's no listing for 'splat' and a lot of
> listings for '*').

http://www.ruby-doc.org/docs/Progra...

Click on the chapter "More about Methods"

Scroll down to the section headed "Expanding Arrays in Method Calls"

It could be indexed better :-)
--
Posted via http://www.ruby-....

Max Williams

2/23/2009 12:55:00 PM

0

Brian Candler wrote:
> Max Williams wrote:
>> But i guess i didn't really properly understand what it does. I can't
>> find an explaanation in pickaxe, although it's not the simplest thing to
>> look for in the index (there's no listing for 'splat' and a lot of
>> listings for '*').
>
> http://www.ruby-doc.org/docs/Progra...
>
> Click on the chapter "More about Methods"
>
> Scroll down to the section headed "Expanding Arrays in Method Calls"
>
> It could be indexed better :-)

Cool. I'm using the paper version, it's page 83 :)

Thanks a lot.
--
Posted via http://www.ruby-....