Robert Klemme
4/18/2005 9:43:00 AM
"Leonardo Francalanci" <lfrancalanci@simtel.it> schrieb im Newsbeitrag
news:42637B81.8080004@simtel.it...
> Hello,
>
> I've found Ruby very interesting. I like it, but coming from a Java
> background I'm having some problems when it comes to parameters and
> function return values. When I program in Java, I just have a look at
> the method definition and I know what classes I have to pass to the
> method and what class the method will return. And, if I write something
> wrong, the compiler will warn me. Now: how do you do it in Ruby? Do you
> use a special notation to understand what classes are to be passed to
> methods? And: when the parameters of a method change (in number and/or
> type), how do you change the calling code accordingly?
>
> Example:
>
> def mymethod(customer, vendor)
> <some code here>
> end
>
> What class do customer and vendor belong? To Customer and Vendor? Or to
> Person? Or are they just strings?
Well, types are not that important in Ruby. When we talk about "Duck
Typing" then we mean, that we pass some value and if it doesn't respond to
the messages that the method wants to send them we'll see that pretty
quickly. This works surprisingly good (surprising for people with a
static typing languages background).
> What are the ruturn types?
That's where documentation comes into play. :-)
> And when you change the code to:
>
> def mymethod(customer, vendor, times)
> <some code here>
> end
>
> do you use "grep" (or any other IDE command) to find all the calling
> code to change it?
That's one option. The other is to use tests extensively. If test
coverage is good (i.e. near 100%) then you will immediately notice all
places where this method is called. Or you use a default value for the
added parameter(s).
Kind regards
robert