Curly braces vs. do/end: Operation Precedence
Choosing whether you use { ... }
or do ... end
around your blocks is more than just a stylistic choice in Ruby. It also affects the way that an operation will be executed because your choice also specifies the Operation Precedence to use. In a nutshell, a block curly braces has higher precedence than a block with do/end.
Consider this example from a great Stackoverflow post:
f param { do_something() }
will execute differently than
f param do do_something() end
The former will bind the block to param
, while the latter will bind the block to f
. The more you know…
Written on March 9, 2016 by evanbrodie