Return/ru

From Second Life Wiki
< Return
Revision as of 09:56, 21 July 2013 by Strife Onizuka (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The correct title of this article is return/ru. The initial letter is shown capitalized due to technical restrictions.

return value;

return value;
• type value Возвращаемое функцией значение или переменная, тип должен быть тем же, что возвращается функцией.

Используется для исполнения возврата в предыдущую область видимости вместе со значением.

Функции

Выход из функции и продолжение выполнения скрипта в предыдущей области видимости.

События

Предпосылка скрипта к падению. События не могут возвращать значения. Используйте следующую форму ключевого слова вместо этой.

return;

Используется для преждевременного возврата выполнения в предыдущую область видимости перед достижением окончания функции/события. Нет потребности использовать в конце события или функции, так как предполагается завершение компилятором.

Функции

Выход из функции и продолжение выполнения скрипта в предыдущей области видимости.

События

Выход из событий и удаление из очереди событий. Если есть еще одно событие в очереди - оно срабатывает.

Caveats

Предостережения

  • Есть ошибка в компиляторе и это позволит вам возвращать значение с событиями, которые при конфликте во время выполнения приведут скрипт к падению.
    • Не пытайтесь возвращать значение в области видимости событи - если не хотите получать падения скрипта.

Examples

Примеры <lsl>integer Goodbye() {

   llOwnerSay("Goodbye");
   return 0;

}

Hello() {

   llOwnerSay("Hello");
   return;

}</lsl> <lsl> integer Calc (string cmd, integer a, integer b) {

   // Пользовательская функция была объявлена ​​как возвращающая integer,
   // следовательно каждый возврат функции должен возвращать integer
   if (cmd == "+")    return a + b;
   // Нет нужды здесь в коде 'else', так как предыдущий оператор привел к 'return' при "true"
   if (cmd == "-")    return a - b;
   if (cmd == "*")    return a * b;
   if (cmd == "/")    return a / b;
   // Нужно возвращать значение и здесь, мы не можем опустить окончательного return (возвращения)
   return -1;   

} default {

   state_entry()
   {
       llSay(0, llList2CSV ( [ Calc("+",1,2), Calc ("-",5,3), Calc ("*",3,4), Calc("/",18,6) ] ) );
   }

} </lsl>

See Also

См.также

Ключевые слова

•  jump
•  state