Method Arguments In Ruby
skorks.com
skorks.com
What about for people who are not working with Ruby but are curious about how it compares? How about those who have just started working with Ruby and are just learning? Think back to the first time you started reading about Ruby, was all the info you ever wanted freely available and clearly laid out? I am betting no.
This is why these days whenever I learn anything new (or think of something I know really well), as soon as i get it straight in my own head I go and write it up. It helps me clarify it even further for myself plus, since the information is out there it may end up helping others who are learning about the same topics.
Anyway, that's how I feel.
There are a few Perl5 ports of which MooseX::Method::Signatures is probably the best implementation: http://search.cpan.org/dist/MooseX-Method-Signatures/lib/Moo...
C# (.NET 3.5) misses one type of method argument: the default parameter (it will be shipped with .NET 4.0). I have to admit, it happened only once that I missed default parameters in C#. however, there's a workaround to solve this problem: http://msdn.microsoft.com/en-us/library/aa287762(VS.71).aspx
no it hasn't. You can't do
public method(String name = "test") {...}
in JavaI actually missed it lots of times. You can work around it by overloading the method, but that's boilerplate for a simple concept.
I also miss named arguments (in both Ruby and C#). When reading the code, when a method has more arguments than one I often forget what the arguments are or their positioning, and it is a lot more readable to specify the arguments by their names ...
lockfile( path = '/var/run/script', timeout = 60, on_timeout = handler)
Ruby doesn't support that. It only has syntactic sugar for the case in which the argument of the method is a hash, but then the method definition becomes less clear.however, it looks like named parameters will be shipped with .NET 4.0: http://geekswithblogs.net/michelotti/archive/2009/01/22/c-4....
I'm guessing it's 1.8.7, but 1.9, the current version of Ruby (though likely not the most used) offers additional (and in some cases, different) ways to manage arguments.