Keyword arguments in Ruby

G

grom

Is it possbile for Ruby to have keyword arguments added in like in
Python.

Quote from Python documentation:

4.7.2 Keyword Arguments
Functions can also be called using keyword arguments of the form
"keyword = value". For instance, the following function:

def parrot(voltage, state='a stiff', action='voom', type='Norwegian
Blue'):
print "-- This parrot wouldn't", action,
print "if you put", voltage, "Volts through it."
print "-- Lovely plumage, the", type
print "-- It's", state, "!"

could be called in any of the following ways:

parrot(1000)
parrot(action = 'VOOOOOM', voltage = 1000000)
parrot('a thousand', state = 'pushing up the daisies')
parrot('a million', 'bereft of life', 'jump')

but the following calls would all be invalid:

parrot() # required argument missing
parrot(voltage=5.0, 'dead') # non-keyword argument following keyword
parrot(110, voltage=220) # duplicate value for argument
parrot(actor='John Cleese') # unknown keyword
 
M

Mauricio Fernández

Is it possbile for Ruby to have keyword arguments added in like in
Python.

http://www.rubyist.net/~matz/slides/rc2003/mgp00026.html

--
_ _
| |__ __ _| |_ ___ _ __ ___ __ _ _ __
| '_ \ / _` | __/ __| '_ ` _ \ / _` | '_ \
| |_) | (_| | |_\__ \ | | | | | (_| | | | |
|_.__/ \__,_|\__|___/_| |_| |_|\__,_|_| |_|
Running Debian GNU/Linux Sid (unstable)
batsman dot geo at yahoo dot com

We are using Linux daily to UP our productivity - so UP yours!
-- Adapted from Pat Paulsen by Joe Sloan
 
G

gabriele renzi

il 24 Jan 2004 22:09:53 -0800, (e-mail address removed) (grom) ha
scritto::
Is it possbile for Ruby to have keyword arguments added in like in
Python.

They're going to be added in ruby2.0.

In the meanwhile you can
use instance eval to have something like this:
Parrot.new{action='voom'; type='norwegian blue'} like in the bindings
for Tk.
Or use an hash to do something like this:
Parrot.new:)action=>'voom',:type=>'norwegian_blue')
 
G

gabriele renzi

il 24 Jan 2004 22:09:53 -0800, (e-mail address removed) (grom) ha
scritto::
Is it possbile for Ruby to have keyword arguments added in like in
Python.

I supposed I answered but my msg didn't show up on comp.lang.ruby.
Sorry if I double post:

kwd args are goin to be included in ruby2.0
Until that you can emulate them via instance_eval like in tk

Parrot.new{state='a stiff'}
or explicitly using an hash:
Parrot.new:)state=>'a stiff')
 

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,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top