Blocks
Blocks are one or more expressions grouped together with curly braces. Each expression is evaluated in order and the value of the last expression is returned.
Any variables assigned within the block can only be used within the block.
Try uncommenting
io.debug(degrees)
to see the compile error from trying to use a variable that is not in scope.
Blocks can also be used to change the order of evaluation of binary operators expressions.
*
binds more tightly than +
so the expression
1 + 2 * 3
evaluates to 7. If the 1 + 2
should be
evaluated first to make the expression evaluate to 9 then the expression can be
wrapped in a block: { 1 + 2 } * 3
. This is similar to grouping
with parentheses in some other languages.