Difference between revisions of "Category:LSL User-Defined Functions/ja"

From Second Life Wiki
Jump to navigation Jump to search
m
(リダイレクト)
Line 1: Line 1:
{{Multi-lang|Category:LSL User-defined_functions|/ja}}
#Redirect [[Category:LSL ユーザ定義関数]]
{{LSL Header/ja}}
 
LSL ではユーザ定義関数を扱えます。構文は非常にシンプルです:
 
<lsl>
 
return_type variable_name(par1type par1name, par2type par2name,...)
  {
    function_statements;
    .
    .
    .
    return value_of_return_type;
  }
</lsl>
 
"function" や "def" といったキーワードや、関数の型/継承を指定する必要はありません。引数の数や組み合わせにどのような制限が (もしあれば) あるのか、私はまだ知りません。下の例のように、引数の型はまちまちで構いません。list 型を戻り値にできますので、一つの関数が複数の値を含めたリストを返せます。ユーザ定義関数によってスクリプトは簡潔で読みやすくなり、基本的なコードの再利用が可能になります。[[LSL_Style_Guide/ja|LSL スタイルガイド]]では、ユーザ定義関数は default ステートの前、ユーザ定義変数の後に置かれるべきとしています。ユーザ定義関数を最初のステートの後に記述すると、Syntax Error になるでしょう。
 
簡単な例を 2 つ挙げます:
 
<lsl>
 
float xsquared(float x)  // 引数の二乗を返します
{
    return x*x;
}
 
vector scalarmult(vector vIn, float sMult)  // スカラーとベクトルの積を返します
{
    vIn.x=vIn.x*sMult;
    vIn.y=vIn.y*sMult;
    vIn.z=vIn.z*sMult;
    return vIn;
}
 
 
 
default
{
    state_entry()
    {
        llWhisper(0, "Some user functions");
    }
 
    touch_start(integer total_number)
    {
        float testx=3;
        llWhisper(0,"testx squared :"+(string)xsquared(testx));
        vector testVector = <1,2,3>;
        testVector = scalarmult(testVector,testx);
        llWhisper(0,"test vector is:"+(string)testVector);
    }
}
 
 
</lsl>

Revision as of 21:09, 14 January 2013

This category currently contains no pages or media.