Difference between revisions of "LSL Variables/ja"

From Second Life Wiki
Jump to: navigation, search
(moved LSL Variables/ja to LSL 変数: changing Japanese page names..)
 
 
Line 1: Line 1:
#REDIRECT [[LSL 変数]]
+
{{Multi-lang}}
 +
{{LSL Header/ja|ml=*}}
 +
{{LSLC/ja|}}
 +
 
 +
'''変数(variable)'''は数値や文字列などの情報を保持しておく場所です。
 +
 
 +
変数は名前、型、値を持ちます。名前は文字で始まり、命名規則はCやJavaと同じです。大文字と小文字は区別されます。Xはxと同じではありません。
 +
 
 +
LSLは著しく静的な型を持つ言語です。これは、変数が型を宣言する必要があり、変数は型に一致する値しか持つことができないことを意味します。しかしながら, list変数は他の型の値を0個以上持つことができます。
 +
 
 +
いくつかの例:
 +
<source lang="lsl2">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</source>
 +
 
 +
== 変数のスコープ ==
 +
変数名は最初に現れたところからその変数が含まれるスコープまで、またグローバル変数ではスクリプトの最後までスコープを持ちます。同じ名前を同じスコープの中で二度定義することはできませんが、内側のスコープで同じ名前を再定義することはできて、再定義された名前は外側のスコープの同じ名前を隠蔽します。重ねますが、動作的にはCやJavaにきわめて似通っています。一方で、次のコードはコンパイルして実行可能です。
 +
<source lang="lsl2">integer i = 50;
 +
 
 +
default
 +
{
 +
    state_entry()
 +
    {
 +
        string i = "Hello there!"; //JavaやCとは違って、 これはコンパイルできます。
 +
        llOwnerSay(i); //"Hello there!"というはずです。グローバル変数iの値を取り出す方法はありません。
 +
    }
 +
}</source>
 +
 
 +
== See Also ==
 +
* {{LSLG/ja|string}}
 +
* {{LSLG/ja|key}}
 +
* {{LSLG/ja|integer}}
 +
* {{LSLG/ja|float}}
 +
* {{LSLG/ja|list}}
 +
* {{LSLG/ja|vector}}
 +
* {{LSLG/ja|rotation}}

Latest revision as of 20:16, 18 December 2015

変数(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