すでにメンバーの場合は

無料会員登録

GitHubアカウントで登録 Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

登録がまだの方はこちらから

Pikawakaにログイン

GitHubアカウントでログイン Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

Ruby

【Ruby】定数について学んでみよう。変数との違いは?

ぴっかちゃん
ぴっかちゃん

定数とは、オブジェクトに付ける名札のようなもので、1回代入したら再代入ができないものです。

irb | 定数の使用例
1
2
3
4
irb(main):001:0> FOO = "foo"  
=> "foo"
irb(main):002:0> FOO = "fooo!!" # 再代入することができない
(irb):2: warning: already initialized constant FOO

定数は、変数と違いアルファベット大文字から始まります。
また、定数は再代入することが出来ないので注意してください。

定数の役割

定数は変数と同じ役割を持ち、1つのオブジェクトに対し名札をつける役割を持ちます。

変数は何回でも代入が可能でしたね。
しかしそれに対し定数は再代入ができないという特徴があります。

変数を宣言する時にはアルファベットの小文字から始めるというルールがありました。
それに対し定数を宣言する時にはアルファベットの大文字から始めます。

それでは定数はどういった時に使うのでしょうか?
定数は、再代入ができないので変更しないものや、再代入されては困るオブジェクトに対し使います。

例えば円周率を変数に代入したとします。
円周率ってちょこちょこ変わるものでしょうか?
いえ、よほどのことがない限り3.14...ですよね。

このように代入された値が不変なものに対して使います。

また環境変数のように誤って再代入されると、エラーが発生してしまうものなどに対しても使われることが多いです。

環境変数については、dotenv-railsで理解する環境変数を参考にしてください。

この記事のまとめ

  • オブジェクトに対し名札をつけるには変数と定数がある
  • 変数は再代入可能だが、定数は再代入不可なので注意!
  • 環境変数にも使われる

8

わかった!