最初に一言で結論を言ってしまうと。
varは変数、letは定数
となります。
var 変数とは
定義すると、何度でも代入が可能なものです。
let 定数とは
一度値を代入すると、もう一度代入できないものです。
実際の使い分けの違い
以下のようにガリガリ君の値段は変わらないものとして扱い、消費税が変化するものと定義すると、それぞれの税率の消費税を計算することができます。
1 2 3 4 5 6 |
var tax = 0.08 // 消費税が8% let garigarikunPrice = 60.0 // ガリガリ君の値段 print(garigarikunPrice * tax) // 4.8 tax = 0.1 // 消費税が10% print(garigarikunPrice * tax) // 6.0 |
varとletの使い分けをするには
基本的にはすべてvarでも動きます。
しかし、今回でいう不変(であってほしいもの)を変数にしてしまうと、自分や他人がソースコードを触る際に間違って再代入
してしまうという現象が考えられます。
なので、考え方は以下の流れで
- 再代入する可能性のないものはすべてletにする
- それ以外はvarにする
といった感じの考え方で、可能な限りletを使うが、再代入する可能性があり、letでは補えない場合はvarを使うと考えれば良いかと思います。
中級者以上になると「これをvarを使わずletで書き換える方法はないかな?」と考えるとより良いソースコードになるかもしれません。