コース一覧
/
Ruby 入門
/

変数とデータ型

定数を使おう

プログラムでは、変わらない値を扱うことがあります。このレッスンでは、変数とは異なり値が変わらないことを示す「定数」の使い方を学びます。

定数とは

定数とは、一度設定したら変更しない値を格納するためのものです。変数と似ていますが、定数は「この値は変わらない」ということを明示するために使います。

TAX_RATE = 0.1 puts TAX_RATE # => 0.1

上の例では、TAX_RATE という定数に 0.1(消費税率 10%)を格納しています。消費税率のように、プログラム全体で固定の値として使いたいものは定数に入れます。

定数の定義

定数を定義するには、大文字で始まる名前を使います。Ruby では、大文字で始まる名前は定数として扱われます。

MAX_COUNT = 100 puts MAX_COUNT # => 100

複数の単語をつなげる場合は、単語の間をアンダースコア(_)で区切ります。すべて大文字で書くのが一般的です。

# よく使われる書き方 TAX_RATE = 0.1 MAX_RETRY_COUNT = 3 DEFAULT_NAME = "ゲスト"

変数との違い

変数と定数の主な違いは、「値を変更することを想定しているかどうか」です。

変数は値を自由に変更できる

変数は、後から別の値を代入しても問題ありません。

color = "赤" puts color # => 赤 color = "青" puts color # => 青

定数は変更しないことを前提とする

定数は、一度設定した値を変更しないことを前提としています。

PI = 3.14 puts PI # => 3.14

円周率(PI)のように、プログラムの途中で変わることがない値は定数に入れます。

定数に再代入するとどうなるか

定数に再代入しようとすると、Ruby は警告を出します。

TAX_RATE = 0.1 TAX_RATE = 0.08 # => warning: already initialized constant TAX_RATE

ここで重要なのは、エラーではなく警告という点です。プログラムは停止せず、実行は続きます。ただし、定数の値を変更するのは意図しない動作の原因になるため、避けるべきです。

定数は「変更しない値」として使うことで、コードの意図が明確になります。

まとめ

  • 定数は変わらない値を格納するためのもの
  • 定数名は大文字で始める(慣習としてすべて大文字で書く)
  • 複数の単語はアンダースコア(_)で区切る
  • 定数に再代入すると警告が出る(エラーではない)