Array into list of arguments - nicest way?


#1

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)


#2

Max W. removed_email_address@domain.invalid wrote:

#have
arr = [arg1, arg2, arg3]
#want
a_method(arg1, arg2, arg3)

a_method(*arr)

Regards,
Jan F.


#3

On Mon, Feb 23, 2009 at 12:44 PM, Max W.
removed_email_address@domain.invalid wrote:

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.


#4

Max W. wrote:

arr = [arg1, arg2, arg3]
#want
a_method(arg1, arg2, arg3)

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

a_method(*arr)


#5

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 ‘*’).


#6

Max W. 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/ProgrammingRuby/

Click on the chapter “More about Methods”

Scroll down to the section headed “Expanding Arrays in Method Calls”

It could be indexed better :slight_smile:


#7

Brian C. wrote:

Max W. 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/ProgrammingRuby/

Click on the chapter “More about Methods”

Scroll down to the section headed “Expanding Arrays in Method Calls”

It could be indexed better :slight_smile:

Cool. I’m using the paper version, it’s page 83 :slight_smile:

Thanks a lot.