Skip to content

変数

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;