Method parameters Type

Hi All,

 Unlike Java why does not ruby specify the method parameter types.

How can a caller know what type of parameter is the method expecting.

 Same with the return value, ruby returns value of the last

statement, how can a caller know the return type.

Thanks
Sree

On Apr 7, 2008, at 4:07 PM, Sreedhar K. wrote:

Hi All,

 Unlike Java why does not ruby specify the method parameter types.

How can a caller know what type of parameter is the method expecting.

 Same with the return value, ruby returns value of the last

statement, how can a caller know the return type.

Ultimately it depends on the availability of good class/method
documentation and the willingness of the programmer to read the
documentation.

The bigger issue is that your question assumes that the ‘type’
of an object is something that can be statically specified by
the programmer at design time (e.g., by declaring an argument
to be an instance of a designated class) and this just is not
true with Ruby.

As long as an object responds to the message that are sent
to it (i.e. the methods that are called on it) then that
object is of the correct ‘type’. This is generally referred
to in the Ruby community as ‘duck typing’.

Check out http://en.wikipedia.org/wiki/Duck_typing to learn
more.

Gary W.

El Lunes, 7 de Abril de 2008, Sreedhar K. escribió:

   Unlike Java why does not ruby specify the method parameter types.
How can a caller know what type of parameter is the method expecting.

Because Ruby use dynamic dispatch, not static as Java.
PD: Is correct “dynamic dispatch” in English?

   Same with the return value, ruby returns value of the last
statement, how can a caller know the return type.

Same.

On Mon, Apr 7, 2008 at 5:23 PM, Jason R. [email protected]
wrote:

No, dynamic dispatch is not the correct term here. Just dynamic (but
strong!) typing. Dynamic dispatch has to do with polymorphism:

Dynamic dispatch is correct. Methods are dispatched dynamically on
the type of the receiver.

Perhaps you were thinking of multiple dispatch, which Ruby does not
support inherently.

On Mon, Apr 7, 2008 at 4:47 PM, Iñaki Baz C. [email protected] wrote:

El Lunes, 7 de Abril de 2008, Sreedhar K. escribió:

 Unlike Java why does not ruby specify the method parameter types.

How can a caller know what type of parameter is the method expecting.

Because Ruby use dynamic dispatch, not static as Java.
PD: Is correct “dynamic dispatch” in English?

No, dynamic dispatch is not the correct term here. Just dynamic (but
strong!) typing. Dynamic dispatch has to do with polymorphism:

Jason