The <<local>> command creates a new variable within the current node, and initializes it to some starting value. Thus, it is similar to <<declare>>, except that the variable it creates is visible within a single node only.
The syntax of the
<<local>> command can be one of the following:
<<local $VARIABLE = EXPRESSION>> <<local $VARIABLE = EXPRESSION as TYPE>>
This would create a variable with the name
$VARIABLE (all variables in YarnSpinner start with a
$ sign), and assign it the value of
EXPRESSION. In the second form, it will ensure that the
type of the expression is equal to
TYPE, otherwise a compile-time error will be thrown. Thus, the
second form serves as the explicit annotation for the type of the variable created.
The following restrictions apply:
each local variable can be declared only once within a node;
the name of a local variable cannot coincide with the name of any global variable.
In this example the variable
$roll will only be needed temporarily within this one node, so it
wouldn’t make sense to declare it as global.
title: a_dice_roll --- <<local $roll = dice(6)>> <<if $roll == 1>> You've rolled 1, rotten luck... <<elseif $roll == 2>> You've rolled 2, which is still below the average. Try harder! <<elseif $roll == 3>> You've rolled 3.14159265 (well, almost). <<elseif $roll == 4>> Your roll is an unlucky number. Please roll again <<else>> You've rolled 10 (when rounded to the nearest ten). Good job! <<endif>> ===