Frederick Cheung wrote:
> {} binds more tightly than do..end - in some cases this can lead to
> your block being passed to the 'wrong' method:
Interesting, makes sense.
Personally, that's one reason I don't like making method calls without
parens, or doing anything else that relies on non-obvious
order-of-evaluation-binding just to save a couple of parens.
foo( bar {} )
or
foo( bar do
end )
will both do the same thing. Although the latter is kind of weird style,
if I need a multi-line block for bar, I'd personally just use a
temporary var instead.
result = bar do
end
foo(result)
But everyone's got their own style, I guess. Of course you COULD use
{||} with multi-lines too, but it would also be stylistically weird in
my opinion in that case.
foo bar {|a|
stuff
more stuff
}
That's just weird. And if I DID it, I'd still want to put parens in
around foo's argument, which would make it even weirder looking.
Jonathan
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---