Ruby 定数を使用する

  • 作成日 2021.09.30
  • 更新日 2022.08.02
  • Ruby
Ruby 定数を使用する

Rubyで、定数を使用するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。

環境

  • OS windows10 pro 64bit
  • ruby 2.7.2p137

定数を使用

rubyは、定数は変数名を大文字からにします。

SITENAME = "mebee"

値を新しく代入しようとすると警告が発生します。

SITENAME = "mebee"

SITENAME = "hoge"
# warning: already initialized constant SITENAME
# warning: previous definition of SITENAME was here

警告が発生するだけで、実際には書き換えは可能という仕様になってます。

SITENAME = "mebee"

SITENAME = "hoge"
# warning: already initialized constant SITENAME
# warning: previous definition of SITENAME was here

p SITENAME
# "hoge"

また、追加は警告なしでできてしまいます。

SITENAME = "mebee"

SITENAME << "info"

p SITENAME
# "mebeeinfo"

freezeを使用すると、値を追加するとエラーを出すことが可能です。

SITENAME = "mebee"
SITENAME.freeze

SITENAME << "info"
# can't modify frozen String: "mebee"

クラス内で定義した定数は、クラス名::定数名で参照することが可能です。

class Hoge
  Site = "mebee"
end

p Hoge::Site
# "mebee"

メソッドの中で定数を定義することはできません。

def hoge
  SITENAME = "mebee"
end
# dynamic constant assignment