Difference between revisions of "LSL 変数"
Jump to navigation
Jump to search
Coffee Mills (talk | contribs) (New page: {{Multi-lang}} {{LSL Header}} '''変数(variable)'''は数値や文字列などの情報を保持しておく場所である. 変数は名前や型や値を持つ. 名前は文字で始...) |
Coffee Mills (talk | contribs) |
||
Line 29: | Line 29: | ||
} | } | ||
</pre> | </pre> | ||
== | == 関連項目 == | ||
* [[string]] | * [[string]] | ||
* [[key]] | * [[key/ja|key]] | ||
* [[integer/ja|integer]] | * [[integer/ja|integer]] | ||
* [[float/ja|float]] | * [[float/ja|float]] | ||
* [[list]] | * [[list]] | ||
* [[vector]] | * [[vector/ja|vector]] | ||
* [[rotation]] | * [[rotation]] |
Revision as of 23:13, 4 December 2007
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
変数(variable)は数値や文字列などの情報を保持しておく場所である.
変数は名前や型や値を持つ. 名前は文字で始まり、命名規則はCやJavaと同様. 大文字/小文字は区別される. Xはxと同じではない.
LSLは強く静的な型を持つ言語である. このことは変数は型を宣言する必要があり、変数は型に一致する値しか持つことができないことを意味する. しかしながら, list変数は他の型の値を0個以上持つことができる.
いくつかの例:
integer count = 2; float measure = 1.2; string chars = "Lee"; 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 = <1,6,2>;
変数のスコープ
変数名は最初に現れたところからその変数が含まれるスコープのところまで, またはグローバル変数ではスクリプトの最後までのスコープを持つ. 同じ名前を同じスコープの中で二度定義することはできないが, 内側のスコープで同じ名前を再定義することはでき, 再定義された名前は外側のスコープの同じ名前を隠す. 重ねて言うが意味的にはCやJavaにきわめて似通っている. 一方で, 次のコードはコンパイルして実行できる.
integer i = 50; default { state_entry() { string i = "Hello there!"; //JavaやCとは違って, これはコンパイルできる. llOwnerSay(i); //"Hello there!"というはず. グローバル変数iの値を取り出す方法はない. } }