A 変数 は値を保持する名前です。変数の値は 数値、文字列、ブール値、データ型 などです。
名前変数
変数名は、数字で始まらない予約されていない文字、数字、アンダースコアの任意の文字列である必要があります。
LETTERS -- 有効a1 -- 有効var_name -- 有効_test -- 有効if -- 無効25th -- 無効
変数名は 大文字と小文字を区別 しますので、TestVar と TESTVAR は異なる名前です。アンダースコアと全て大文字の文字を使用して変数に名前を付けることは避けてください(例: _VERSION)。Luauはそれらを内部グローバル変数のために予約しているかもしれません。
ベストプラクティス
単語を完全に綴るのがベストプラクティスです。省略形は一般的にコードを記述しやすくしますが、読みやすさを損なうことがあります。変数に名前を付ける際に一般的な命名慣行に従うことで、自分や他者がその意味や目的を理解しやすくなります:
- クラスや列挙型のオブジェクトには PascalCase 名を使用してください。
- 全てのRoblox APIには PascalCase 名を使用してください。camelCase APIは主に非推奨です。
- ローカル変数、メンバー値、関数には camelCase 名を使用してください。
- ローカル定数(変更しないと予想される値を持つ変数)には LOUD_SNAKE_CASE 名を使用してください(例: MAX_LENGTH)。
- 名前の中で全ての頭字語を大文字にしないでください。例えば、aJsonVariable や MakeHttpCall と書いてください。
予約された名前
Luauは以下のキーワードを予約しているため、これらを変数や関数の名前に使用することはできません。
- and
- for
- or
- break
- function
- repeat
- do
- if
- return
- else
- in
- then
- elseif
- local
- true
- end
- nil
- until
- false
- not
- while
値を割り当てる
変数を作成して値を割り当てるには、= 演算子を使用します。= の左側に変数を置き、右側に値を置きます。値を置かなければ、その値は nil になります。
変数には グローバル または ローカル スコープがあります。デフォルトではグローバルスコープですが、ローカルスコープで作成した方がほとんどの場合が良いです。なぜなら、Luauはローカル変数により早くアクセスできるからです。変数にローカルスコープを与えるには、値を割り当てる際に変数名の前にキーワード local を置きます。Luauにおけるスコープの詳細については、スコープを参照してください。
local nilVarlocal x = 10local word = "Hello"local boolean = trueprint(nilVar) -- nilprint(x) -- 10print(word) -- Helloprint(boolean) -- true
複数の変数に値を割り当てる
コンマで区切って変数と値のペアを一行で割り当てることができます。値が変数より多い場合、Luauは余分な変数に nil を割り当てます。値が変数より多い場合、余分な値は変数に割り当てられません。
local a, b, c = 1, 2, 3local d, e, f = 4, 5 -- 余分な変数local g, h = 7, 8, 9 -- 余分な値print(a, b, c) -- 1, 2, 3print(d, e, f) -- 4, 5, nilprint(g, h) -- 7, 8
値を変更する
変数の値を変更するには、別の値を割り当てます。
local x, y = 10, 20print(x) -- 10print(y) -- 20local x = 1000local y = 2000print(x) -- 1000print(y) -- 2000