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.