Passing array instead of individual parameters?

S

Stefan Kruger

[New to this fine language, from a Perl background]

I expected (wrongly) the following to work -

def myroutine(one, two, three)
puts "first: #{one} second: #{two} third: #{three}"
end

myroutine('brave', 'new', 'world') # as expected

# The unexpected (to me)

myparamlist = ['brave', 'new', 'world']

myroutine(myparamlist) # fails

So, my question is - is there a way of calling a routine expecting N
parameters with a list containing N elements instead?

Specifically, using the dbi module, I expected to be able to say:

sth.prepare("insert into foo (one, two, three) values (?, ?, ?)")
sth.execute(my_list_of_three_values)

but instead I need to loop through the list and bind each one in turn?

Many thanks,

stefan
 
M

Matthew Moss

[New to this fine language, from a Perl background]

I expected (wrongly) the following to work -

def myroutine(one, two, three)
puts "first: #{one} second: #{two} third: #{three}"
end

myroutine('brave', 'new', 'world') # as expected

# The unexpected (to me)

myparamlist = ['brave', 'new', 'world']

myroutine(myparamlist) # fails

So, my question is - is there a way of calling a routine expecting N
parameters with a list containing N elements instead?


myroutine(*myparamlist)
 
S

Stefano Crocco

Alle Monday 10 November 2008, Stefan Kruger ha scritto:
myroutine(myparamlist) # fails

So, my question is - is there a way of calling a routine expecting N
parameters with a list containing N elements instead?

myroutine(*myparamlist)

The *, when put in front of an array in an argument list transforms each
element of the array in an argument to the method. It is sometimes called the
"splat operator", even if it's not a true operator.

Stefano
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top