Difference between revisions of "LSL Variables/ja"
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) (moved LSL Variables/ja to LSL 変数: changing Japanese page names..) |
Mizu Melody (talk | contribs) |
||
Line 1: | Line 1: | ||
{{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 19:16, 18 December 2015
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
変数(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の値を取り出す方法はありません。
}
}