Skip to content

なぜ定数を使うのか

kobayashiharuto edited this page Jun 28, 2021 · 1 revision

なぜ定数を使うのか

定数とは?

定数とは、値を変更することができない変数のことです

Swift では let で定数を宣言することができます

以下のような挙動ですね

var num1 = 0    // 変数宣言
num1 = 1        // OK

let num2 = 0    // 定数宣言
num2 = 1        // ERROR!

さて、わざわざ値が変えられない定数を使う意味は何でしょうか?

変数だけでいいような気がしますが...


定数はどう嬉しいか

変わらないことから読み取れることがある

とにかく実践してみましょう。

あなたは、「電卓アプリ」を実装するお手伝いをしているとします。
その電卓アプリのコードを見せてもらいました。

let tax = 0.1   // 消費税率
var num1: Int
var num2: Int

// ここから計算処理
// ~~~~~

たった最初の三行しか見せてもらえませんでしたが、これだけでこの計算アプリの仕様が一部わかります。

なにかわかりますか?

それは、このアプリは消費税率 (tax) が 10% で固定という仕様です。

税率が定数宣言されているので、この後いくらコードが長く書かれていようが、確実に tax には 0.1 が入っていると保証されているわけです。


変わらないから考えなくていい

さて、仕様書を見てみると案の定でした。

仕様書

消費税率は 10% 固定で!

では逆にこの仕様にもかかわらず定数を使わなかった場合どうなるでしょうか?

var tax = 0.1   // 消費税率
var num1: Int
var num2: Int

// ここから計算処理
// ~~~~~

ふむ。まああまり問題ないような気もします。

しかしよく考えてみると、計算処理内で tax の値が変更されていても誰も気づくことができません。

そんなミスするわけない?でも言い切れませんよね?

あなた自身は絶対ミスしないかもしれませんが、仮に誰かがこのコードをいじった時バグが起きたら、「誰か tax いじった?」とか聞いて回ることになるかも...?

定数宣言しておけば、これが変ったことによるバグは絶対に無いと言い切れるようになるんです。

少なからず意識する必要があった「tax は変えてはいけない」という考えを捨て去って、何も考えずコーディングできるようになるんです!


まとめ

定数宣言しておけば、以下のようなメリットがあります

  • 変わらないということから、使われ方の予想が出来る
  • 変えてはいけない値を何も考えなくても変えずに済む

変えたくない値、または変える必要のない値にどんどん使っていきましょう!

Clone this wiki locally