メインコンテンツまでスキップ

変数とスコープ

変数の宣言

= で現在のスコープに変数を宣言します.

x = 1;

上のコードでは,変数 x1 を代入しています.変数名には ASCII 記号 (アンダースコア除く) を含まない任意の文字列を使うことができます.

スコープ

同一スコープ内で宣言が重複すると,変数は上書きされます.下の例では x5 を指します.

x = 1;
x = 5;

println x; // 5

{} はスコープを形成します.内側のスコープで宣言された変数は外側で参照できません.

{
x = 1;
};

println x; // ()
注記

外側のスコープで宣言された変数は内側で参照できます.

x = 1;

{
println x; // 1
};

内側のスコープで宣言した変数と同名の変数が外側に存在する場合,外側の変数は隠蔽されます.上書きはされません.

x = 1;

{
x = 5;
println x; // 5
};

println x; // 1

外側の変数を上書きする

外側にある変数を内側のスコープで書き換えるには,:: で外側のスコープをオブジェクトとして取得します.

x = 1;

{
:: .x = 5;
println x; // 5
};

println x; // 5