Feature #13630
closed:[] method should accept block in nice syntax
Description
Updated by shevegen (Robert A. Heiler) over 9 years ago
I agree. I always wondered about this too.
I did not make a suggestion like this because I suspect that one reason may be a parser issue, as otherwise it would most likely have been done already.
In particular for elements without any arguments like:
Or more verbose to use your example:
module Bam
def self.[](bam=42)
yield bam
end
end
Bam.[] { |b| puts b } # => 42
Bam[] { |b| puts b } # => SyntaxError: (irb):14: syntax error, unexpected { arg, expecting end-of-input
Only difference here between failure and success is one lonely '.'. I am not sure if it is technically
possible to get rid of the '.', but if it would be possible, that would be great. The '.' visually
disturbs me when I see [] ... but not at other places, it's weird. :D
Edit: Ok, my example was not good but I guess the difference between .[] and [] can be seen which is the main point.
Updated by nobu (Nobuyoshi Nakada) about 9 years ago
The trunk accepts a block after [] now.
Updated by shyouhei (Shyouhei Urabe) almost 9 years ago
- Status changed from Open to Closed
We looked at this at a developer meeting today and confirmed that this is already done.
Updated by matz (Yukihiro Matsumoto) almost 9 years ago
And now mruby does too.
Matz.