変数
letキーワードを用いて変数を宣言します。Rustとは異なる点として、Thirdでは変数はデフォルトで可変です。また、変数を宣言時に初期化しない場合、nullが値として入ります。すでに宣言された変数名を再び宣言するようなシャドーイングも可能です。
third
let a = 1;
a = 2; // mutable by default
let b; // no initialization
assert b == null; // `null` is stored
b = 1;
let b = "abc"; // shadowing
assert b == "abc";let a = 1;
a = 2; // mutable by default
let b; // no initialization
assert b == null; // `null` is stored
b = 1;
let b = "abc"; // shadowing
assert b == "abc";変数のスコープはブロックによって制御され、ブロック内で定義された変数は、ブロックの終端でドロップします。
third
let a = 1;
{
assert a == 1;
let a = 2;
assert a == 2;
// `a` in this block drops
}
assert a = 1;let a = 1;
{
assert a == 1;
let a = 2;
assert a == 2;
// `a` in this block drops
}
assert a = 1;