From: Thomas Wieczorek Date: 2008-03-04T09:52:31+09:00 Subject: Re: Why is this not implemented in Ruby On Mon, Mar 3, 2008 at 10:36 PM, Jason Roelofs wrote: > Show me a language that does allow you to do this, I've never seen it. > Even then, Ruby doesn't deal with method overloads via parameter > lists, so there's a fundamental reason why it won't work: > > def foo(a) > end > > def foo(a, b) > end > > def foo(a, b, c) > end > > foo(1) # => ArgumentError: wrong number of arguments (1 for 3) > > > Ruby 1.9 has keyword arguments, so you'll be able to get past that > easily then. You can fake it in 1.8 with a hash: > > def aProc(options = {}) > a = options[:a] || 5 > b = options[:b] || 6 > c = options[:c] || 7 > print a, b, c > end > > aProc(:a => 1, :c => 3) > > With Ruby 1.9 that will look like (I think, doing this from memory): > > aProc(a: 1, c: 3) > > Jason > > > > On Mon, Mar 3, 2008 at 4:27 PM, Damjan Rems wrote: > > > > It is probably a good reason but why is this not implemented in ruby. > > > > irb(main):005:0> def aProc(a=5,b=6,c=7) > > irb(main):006:1> print a,b,c > > irb(main):007:1> end > > irb(main):008:0> aProc > > 567=> nil > > > > irb(main):009:0> aProc(1,,3) > > SyntaxError: compile error > > (irb):9: syntax error, unexpected ',' > > aProc(1,,3) > > ^ > > from (irb):9 > > from :0 > > > > Why oh why I can not omit parameter in the middle of statement? I am > > forced to know its default value if I want to omit a parameter in the > > middle or at the begining of the statement. > > > > > > by > > TheR > > -- > > Posted via http://www.ruby-forum.com/. > > > > > >