🦀

Rustのシャドーイング

に公開

Rustのシャドーイング:JavaScriptプログラマーが驚く変数の扱い方

はじめに

普段JavaScriptを書いてる私が、Rustの勉強を始めて、多くの概念が新しく見えますが、その中でも「変数のシャドーイング」が新しい概念だったので、この記事を起こしました。
この記事では、Rustの変数シャドウイングの基本から、JavaScriptプログラマーが驚くポイント、そして実際の使い方までを解説します。

シャドーイングの基本概念

シャドーイングとは何か

シャドーイングとは、同じスコープ内で同じ変数名を再度宣言することで、以前の変数を「影」に隠す(シャドウする)機能です。Rustでは以下のように書きます:

let x = 5;        // 最初のx
let x = x + 1;    // 新しいx(以前のxを使って計算)
let x = x * 2;    // さらに新しいx
println!("The value of x is: {}", x);  // 12が出力される

この例では、xという変数を3回宣言しています。各宣言は新しい変数を作成し、前の変数を「シャドウ」(隠す)します。最終的なxの値は12になります。

JavaScript vs Rust:変数宣言の違い

JavaScriptでは同じスコープ内で変数を再宣言すると通常エラーになります。

let x = 5;
let x = 6;  // SyntaxError: Identifier 'x' has already been declared

代わりに単純な代入を使います:

let x = 5;
x = x + 1;  // これは有効
x = x * 2;  // これも有効
console.log("The value of x is: " + x);  // 12が出力される

この根本的な違いがJavaScriptプログラマーが最初に驚くポイントです。Rustでは同一スコープ内で「再宣言」が許されるのです。

終わり

単純な記事ですがRustをこれから学んでいくため、アウトプット8割インプット2割でやっていきたいと思います〜。

Discussion