LSL 101/Variable Initialization
| ← Global vs Local Variables | ↑̲ LSL 101 ̲↑ | Event Handler Parameters → |
When a variable declaration is executed, the variable always gets some initial value, whether or not our script specifies. This is called variable initialization, and it deserves a little discussion of its own. So far, we have passed over this detail by always executing an assignment statement for the variable prior to using it. But consider this example.
<lsl>string RegionName; // This is a global variable
default {
state_entry()
{
// Store the name of the current sim for later use
RegionName = llGetRegionName();
}
touch_start( integer num_detected )
{
// Announce the region where the script is running
string WelcomePhrase = "Welcome to " + RegionName + ".";
llOwnerSay( WelcomePhrase );
}
}</lsl>
The only difference between the previous example and this one is that we have replaced the two lines
<lsl> string WelcomePhrase
WelcomePhrase = "Welcome to " + RegionName + ".";</lsl>
with the single line
<lsl> string WelcomePhrase = "Welcome to " + RegionName + ".";</lsl>
It looks as though we have combined the variable declaration and the assignment statement into one statement, and in effect, that is what we have done. Any declaration of a local variable can be followed by the assignment symbol and an expression that follows the same rules as that for an assignment statement. As a matter of fact, this is generally considered a good practice, and most example you see will probably do that.
However, the rules for initializing a global variable are different.