Difference between revisions of "Return"
Jump to navigation
Jump to search
(Please leave the Darling reference. She even wrote two examples to help explain.) |
(Made simpler example with both uses for return (both is correct right? not two of?)) |
||
Line 36: | Line 36: | ||
}</lsl><lsl>// Very great thanks to Darling Brody for helping me understand this. | }</lsl><lsl>// Very great thanks to Darling Brody for helping me understand this. | ||
string WhoAreYou(key id) | |||
{ | { | ||
return (llKey2Name(id)); // return the value established | |||
} | } | ||
default | default | ||
{ | { | ||
touch_start(integer detected) | touch_start(integer detected) | ||
{ | { | ||
if(llDetectedName(0) != "Named | if(llDetectedName(0) != "Named User") | ||
return; | return; // leave the event because the toucher is not "Named User" | ||
llSay(0, "I have been touched by " + WhoAreYou(llDetectedKey(0))); //We will only ever be told who we are. | |||
} | } | ||
}</lsl> | }</lsl> |
Revision as of 14:50, 4 August 2009
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
- The correct title of this article is return. The initial letter is shown capitalized due to technical restrictions.
return value;
return value;• type | value | – | value or variable to be returned by the function, the type must be the same as that to be returned by the function. |
Used to return execution to the previous scope along with a value.
Functions
- Exits the function and continues script execution in the previous scope.
Events
- Causes the script to crash. Events cannot return a value. Use the next form of this keyword instead.
return;
Used to prematurely return execution to the previous scope before reaching the end of the function/event. You do not need to use this at the end of an event or function, as it is assumed by the compiler.
Functions
- Exits the function and continues script execution in the previous scope.
Events
- Exits the event and removes it from the event queue. If there is another event in the queue, that event is triggered.
Caveats
- There is a bug in the compiler and it will let you return a value with events, which when encountered at runtime will cause the script to crash.
- Do not try to return a value in the event scope if you do not wish your script to crash.
Examples
<lsl>integer Goodbye() {
llOwnerSay("Goodbye"); return 0;
}
Hello() {
llOwnerSay("Hello"); return;
}</lsl><lsl>// Very great thanks to Darling Brody for helping me understand this.
string WhoAreYou(key id) {
return (llKey2Name(id)); // return the value established
}
default {
touch_start(integer detected) { if(llDetectedName(0) != "Named User") return; // leave the event because the toucher is not "Named User" llSay(0, "I have been touched by " + WhoAreYou(llDetectedKey(0))); //We will only ever be told who we are. }
}</lsl>