読み込み中...

初心者でもできる!Rubyのグローバル定数の使い方7選

Rubyのグローバル定数の使い方 Ruby
この記事は約7分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事では、Rubyのグローバル定数の使い方を初心者向けに詳細に解説します。

Rubyは、Webアプリケーション開発を効率的に進めるために作られた言語で、シンプルで読みやすい文法が特徴です。

その中でグローバル定数は、一度定義するとプログラム全体から参照できる値で、その扱い方を知ることはRubyの理解を深める上で非常に重要です。

この記事を読み終えると、Rubyのグローバル定数の使い方について理解できるようになります。

●Rubyのグローバル定数とは

Rubyのグローバル定数は、プログラム全体から参照できる定数です。

定数とは、一度定義すると値を変更できない変数のことを指します。

Rubyでは、定数名は大文字のアルファベットで始まることで識別されます。

○定義の方法

Rubyのグローバル定数は、次のように定義します。

MY_CONSTANT = 'これはグローバル定数です'

ここで、’MY_CONSTANT’は定数名で、’これはグローバル定数です’がその値です。

この定数はプログラムのどこからでも参照することができます。

●Rubyのグローバル定数の使い方

次に、実際のサンプルコードを通じてRubyのグローバル定数の具体的な使い方を見ていきましょう。

○サンプルコード1:グローバル定数の定義と参照

# グローバル定数の定義
MY_CONSTANT = 'これはグローバル定数です'

# グローバル定数の参照
puts MY_CONSTANT

このコードでは、’MY_CONSTANT’という名前のグローバル定数を定義し、その後でputsメソッドを使ってその値を出力しています。

この例では、定義したグローバル定数を参照して、その値を出力しています。

実行結果は次のようになります。

これはグローバル定数です

○サンプルコード2:グローバル定数の再代入

# グローバル定数の定義
MY_CONSTANT = 'これはグローバル定数です'

# グローバル定数への再代入
MY_CONSTANT = '新しい値'

このコードを実行すると、以下のような警告が表示されます。

warning

: already initialized constant MY_CONSTANT

このコードでは、’MY_CONSTANT’という名前のグローバル定数に対して新たに値を代入しようとしています。

しかし、定数は一度定義するとその値を変更することはできません。

そのため、定数への再代入は警告が表示され、原則として行うべきではありません。

○サンプルコード3:組み込みのグローバル定数

# 組み込みグローバル定数の参照
puts RUBY_VERSION

このコードでは、Rubyの組み込みグローバル定数RUBY_VERSIONを参照しています。

RUBY_VERSIONはRubyのバージョン情報を保持する定数です。この例では、Rubyのバージョンを表示しています。

実行結果は次のようになります。

3.1.0

この結果はRubyのバージョンによります。

例えばRuby 3.1.0を使用している場合、実行結果は’3.1.0’となります。

○サンプルコード4:ライブラリのグローバル定数

Rubyではライブラリが提供するグローバル定数を利用することもできます。

例えば、数学関数を提供するMathモジュールにはPIという定数があります。

# Mathモジュールのグローバル定数の参照
puts Math::PI

このコードでは、Mathモジュールのグローバル定数PIを参照しています。

PIは円周率の値を保持する定数です。この例では、円周率の値を表示しています。

実行結果は次のようになります。

3.141592653589793

○サンプルコード5:クラスとモジュールのグローバル定数

クラスやモジュール内で定義された定数も、そのクラスやモジュールの外から参照することができます。

# クラス内での定数定義と参照
class MyClass
  MY_CONSTANT = 'これはMyClassの定数です'
end

puts MyClass::MY_CONSTANT

このコードでは、MyClassというクラス内でMY_CONSTANTという名前の定数を定義し、その後でその定数を参照しています。

この例では、クラス内で定義した定数を参照し、その値を出力しています。

実行結果は次のようになります。

これはMyClassの定数です

○サンプルコード6:グローバル定数のリスト表示

Rubyでは現在のスコープに存在するすべての定数を一覧表示することも可能です。

それには、Objectクラスのconstantsメソッドを使用します。

# 現在のスコープの全定数を表示
puts Object.constants.sort

このコードでは、Objectクラスのconstantsメソッドを使用して、現在のスコープ内で定義されているすべての定数を取得し、それらをソートして表示しています。

実行結果は次のようになります。

ARGF
ARGV
Complex
Dir
ENV
FalseClass
...

この出力は一部を省略していますが、実行結果は環境により異なることを覚えておいてください。

また、この一覧には組み込みのグローバル定数、ライブラリのグローバル定数、さらには自身で定義した定数も含まれます。

○サンプルコード7:グローバル定数の削除

Rubyでは定数を一度定義すると、その値を変更することはできません。

しかし、一度定義した定数を削除することは可能です。

それには、Objectクラスのremove_constメソッドを使用します。

# グローバル定数の削除
MY_CONST = 100
puts MY_CONST

Object.send(:remove_const, :MY_CONST)
puts defined?(MY_CONST)

このコードでは、初めにMY_CONSTという名前の定数を定義し、その値を表示します。

その後、Objectのsendメソッドを使用してremove_constメソッドを呼び出し、定数MY_CONSTを削除します。

最後に、定数MY_CONSTが存在するか確認するためにdefined?メソッドを使用します。

この例では、定数を削除してその結果を確認しています。

実行結果は次のようになります。

100
nil

最初に100が表示され、その後でnilが表示されます。

これは、初めに定数MY_CONSTが存在していたが、remove_constメソッドによって削除されたため、定数はもはや存在しないことを示しています。

●グローバル定数の注意点

Rubyのグローバル定数は非常に便利な一方で、注意すべき点もあります。

一つ目の注意点は、一度定義した定数は変更できないということです。

Rubyでは、定数の値を変更しようとすると警告が表示されます。

しかし、技術的には可能であるため、うっかり間違えてしまうと混乱を招く可能性があります。

# 定数の再定義
FOO = 1
FOO = 2

このコードでは、初めにFOOという名前の定数を定義し、その後で同じ名前の定数を再定義しようとしています。

しかし、Rubyでは定数の値は変更不可であるため、2度目の定義では警告が表示されます。

実行結果は次のようになります。

warning: already initialized constant FOO
warning: previous definition of FOO was here

二つ目の注意点は、定数は通常大文字で始まる名前を使用するという規則です。

小文字で始まる名前は変数と見なされますので、注意が必要です。

最後に、定数はそのスコープ内でのみ利用可能で、スコープ外から参照しようとするとエラーとなります。

スコープについては別の機会に詳しく説明しますが、ここでは定数を適切に管理するための基本的なルールとして覚えておいてください。

まとめ

本記事では、Rubyのグローバル定数について、その定義方法から利用法、そして注意点までを丁寧に解説してきました。

初心者の方でも理解できるように、実際に動かすことができるサンプルコードも交えて、わかりやすく解説しました。

まずはグローバル定数の定義方法から学び、次にグローバル定数を使った簡単な計算や、その値を出力する方法を学びました。

そして、グローバル定数がどのようにリスト表示されるか、また、定数を削除する方法についても学びました。

さらに、定数が変更できないこと、名前が大文字で始まる必要があること、スコープ内でしか利用できないことといった、定数の利用時に注意すべき点についても解説しました。

Rubyのグローバル定数は、コードの中で変わることのない値を管理するのに非常に有用です。

しかしながら、その扱いには注意が必要です。

今回学んだことを忘れずに、Rubyのグローバル定数を活用して、より効率的なプログラミングを目指しましょう。

ここまで読んでくださり、ありがとうございました。

この記事が、Rubyのグローバル定数の使い方を学ぶ一助となれば幸いです。