LSL Variables/ja

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

変数(variable)は数値や文字列などの情報を保持しておく場所です。

変数は名前、型、値を持ちます。名前は文字で始まり、命名規則はCやJavaと同じです。大文字と小文字は区別されます。Xはxと同じではありません。

LSLは著しく静的な型を持つ言語です。これは、変数が型を宣言する必要があり、変数は型に一致する値しか持つことができないことを意味します。しかしながら, list変数は他の型の値を0個以上持つことができます。

いくつかの例:

integer  count   = 2;            //A whole number
float    measure = 1.2;          //A number with decimal places
string   chars   = "Lee";        //Any text within " "
list     words   = ["This", "Is", "A", "List"];
list     entries = ["A list may contain many types of values such as", 2, 1.2, <0.4, 0.8, 1.6>];
vector   vec_2   = <1,6,2>;      //Generally used for position as xyz, but can be used to store 3 numbers to be parsed out later
rotation _rot    = <1,2,3,4>;    //Can also be used to store 4 numbers to be parsed out later

変数のスコープ

変数名は最初に現れたところからその変数が含まれるスコープまで、またグローバル変数ではスクリプトの最後までスコープを持ちます。同じ名前を同じスコープの中で二度定義することはできませんが、内側のスコープで同じ名前を再定義することはできて、再定義された名前は外側のスコープの同じ名前を隠蔽します。重ねますが、動作的にはCやJavaにきわめて似通っています。一方で、次のコードはコンパイルして実行可能です。

integer i = 50;

default 
{
    state_entry() 
    {
        string i = "Hello there!"; //JavaやCとは違って、 これはコンパイルできます。
        llOwnerSay(i); //"Hello there!"というはずです。グローバル変数iの値を取り出す方法はありません。
    }
}

See Also