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
···
--
Posted via http://www.ruby-forum.com/ .
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 Wright
···
On Apr 7, 2008, at 4:07 PM, Sreedhar Kesanasetti 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.
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.
···
El Lunes, 7 de Abril de 2008, Sreedhar Kesanasetti escribió:
--
Iñaki Baz Castillo
Jason_R
(Jason R.)
7 April 2008 21:23
4
No, dynamic dispatch is not the correct term here. Just dynamic (but
strong!) typing. Dynamic dispatch has to do with polymorphism:
In computer science, dynamic dispatch is the process of selecting which implementation of a polymorphic operation (method or function) to call at run time. It is commonly employed in, and considered a prime characteristic of, object-oriented programming (OOP) languages and systems.
Object-oriented systems model a problem as a set of interacting objects that enact operations referred to by name. Polymorphism is the phenomenon wherein somewhat interchangeable objects each expose an operation of...
Jason
···
On Mon, Apr 7, 2008 at 4:47 PM, Iñaki Baz Castillo <ibc@aliax.net> wrote:
El Lunes, 7 de Abril de 2008, Sreedhar Kesanasetti 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?
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 5:23 PM, Jason Roelofs <jameskilton@gmail.com> wrote:
No, dynamic dispatch is not the correct term here. Just dynamic (but
strong!) typing. Dynamic dispatch has to do with polymorphism:
--
Avdi