Life without Method Overloading?

D

Derek Cannon

How do Ruby programmers handle method overloading? In Java, I could
easily create several methods of the same name that accept a variety of
input.

I know in Ruby, using *args you can accept an unlimited number of
parameters. Do I just this with a series of if statements?

Or is there a common way Ruby programmers handle this?

Thanks again,
Derek
 
K

Kaspar Schiess

Hi,

Or is there a common way Ruby programmers handle this?

There are some common patterns, like what you find in Rails for example:

http://railsbrain.com/api/rails-2.3.2/doc/index.html?a=M002313&name=find

I think overloading is very much attached to static typing and not as
useful in dynamic languages as it seems. Creating more methods is free
and generally more expressive. Polymorphism is implicit (look up what we
call 'duck-typing' here). I find that I rarely have the need for
overloading in Ruby (or that I overload all the time, depending on which
way you look at it - no type signatures means that you can pass in
anything at all) - and when I need it, I use the rails-kind named
arguments.

greetings,
kaspar
 
C

Christopher Dicely

How do Ruby programmers handle method overloading? In Java, I could
easily create several methods of the same name that accept a variety of
input.

I know in Ruby, using *args you can accept an unlimited number of
parameters. Do I just this with a series of if statements?

Mostly, I think instead of creating several methods of the same name, Ruby
programmers tend to create methods with different names. Some of the use
cases of overloading can also be addressed with optional arguments, trailing
hash arguments, and so on.
 
J

Josh Cheek

[Note: parts of this message were removed to make it a legal post.]

How do Ruby programmers handle method overloading? In Java, I could
easily create several methods of the same name that accept a variety of
input.

I know in Ruby, using *args you can accept an unlimited number of
parameters. Do I just this with a series of if statements?

Or is there a common way Ruby programmers handle this?

Thanks again,
Derek
An easy thing to do is just normalize the data.

def join_strings(a,b)
a.to_s + b.to_s
end

join_strings 'a' , 'b' # => "ab"
join_strings 1 , 2 # => "12"
 
B

botp

How do Ruby programmers handle method overloading?

ruby programmers do not need it
In Java, I could easily create several methods of the same name that accept a variety of
input.

maybe java people need it :)
I know in Ruby, using *args you can accept an unlimited number of
parameters. Do I just this with a series of if statements?

no. you're doing it like in static languages.
Or is there a common way Ruby programmers handle this?

it comes natural when you are *object*-oriented. there will be no need
for overload. you wont even think about it.

maybe you could show us a sample use case of method overloading since
i cannot think of one right now ;-)

best regards -botp
 
D

Derek Cannon

maybe you could show us a sample use case of method overloading since
i cannot think of one right now ;-)

Sure. A simple example of what I wanted to do (using method overloading
in this example for lack of better know-how):

Class XYZ

def initialize(title, days, time, professor)
@title = title
@days = days
@time = time
@professor = professor
end

def initialize(title, days, time, professor, lab_time, lab_days)
@title = title
@days = days
@time = time
@professor = professor
@lab_time = lab_time
@lab_days = lab_days
end

end
 
J

Jesús Gabriel y Galán

Sure. A simple example of what I wanted to do (using method overloading
in this example for lack of better know-how):

This one is easy:

Class XYZ
def initialize(title, days, time, professor, lab_time=3Dnil, lab_days=3Dn=
il)
@title =3D title
=A0@days =3D days
=A0@time =3D time
=A0@professor =3D professor
=A0@lab_time =3D lab_time
=A0@lab_days =3D lab_days
end
end

Jesus.
 

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,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top