Scope
In the previous example, we used condition ? statement–1 : statement–2
notation as a shorthand for if-else-end
.
It was necessary to wrap the code following the colon in begin-end
.
This is a form of a block, as are if
statements, and for
and while
loops.
Julia always signals the termination of the most recent block by way of the end
statement.
Other examples of blocks we have met so far are those introduced by module
, function
, and struct (type)
definitions and by try
and catch
statements.
The question we need to consider is, if a variable is declared inside a block, is it visible outside it? This is controlled by Julia’s scoping rules.
Since if-else
or begin-end
blocks do not affect a variable’s visibility, it is better to refer to the current scope rather than the current block.
There are new scoping rules applying to the visibility of variables declared at the top level.
These were discussed in Chapter 1, and you are asked...