Tech Bytes

短くて分かりやすい技術情報を記事として共有します。みなさんにとって学びになれば幸いです。

Swiftのletとvarの使い方

Swiftのletとvarの使い方

letとvarはSwift言語において変数や定数を宣言するためのキーワードです。
これらのキーワードを使用して変数や定数を宣言し、その値の変更可否を指定します。

let(定数):
letを使用して宣言された変数は定数であり、一度値が代入されたら変更できません。
例:

let constantValue = 10
// constantValue = 5 // エラー: 定数 'constantValue' は変更不可

var(変数):
varを使用して宣言された変数は変更可能であり、任意のタイミングで新しい値を代入できます。
例:

var variableValue = 20
variableValue = 30 // 変数 'variableValue' の値を変更

使用するキーワードは、変数や定数の性質に応じて選択します。
一般的な原則として、変更する必要のない値や、プログラムの実行中に変更してはならない設定値などには let を使用し、それ以外の変更が必要な値には var を使用します。

例えば、関数内で一時的な変数を宣言する場合には var を使用し、関数内で変更されては都合の悪い値には let を使用することが一般的です。

SwiftのvarとletはJavascriptのvarとletと使い方が違うので間違えやすい

Swiftのvarとletは、JavaScriptのvarとletといくつかの点で異なります。
以下に、SwiftとJavaScriptのそれぞれの特徴と使い方の違いをいくつか挙げてみます。

Swift:

let(定数):
一度代入されたら変更できない。
イミュータブル(immutable)。

let constantValue = 10
// constantValue = 5 // エラー: 定数 'constantValue' は変更不可

var(変数):
任意のタイミングで新しい値を代入できる。
ミュータブル(mutable)。

var variableValue = 20
variableValue = 30 // 変数 'variableValue' の値を変更

JavaScript:

var(変数):
任意のタイミングで新しい値を代入できる。
ブロックスコープを無視し、関数スコープのみ。

var variableValue = 20;
variableValue = 30; // 変数 'variableValue' の値を変更

let(ブロックスコープの変数):
ブロックスコープを考慮して変数を宣言。
一度代入されたら再代入可能。

let constantValue = 10;
// constantValue = 5;

JavaScriptにおいては、varがブロックスコープを無視する挙動を持っているため、予期しない変数の挙動が発生しやすいです。
そのため、letやconstの使用が推奨されています。
Swiftでは、letは定数として使われ、変更が不可能な値を示すことが一般的です。
一方で、varは変更可能な値を示します。
両者を正確に使い分けることがSwiftプログラミングの基本です。