●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

Rubyのグローバル変数($変数)とは?使い方と注意点をやさしく解説

Rubyには、$変数名 という形式で定義する「グローバル変数」があります。 これは、プログラム全体でアクセス可能な変数で、クラスやメソッドの内外を問わず使用できます。

グローバル変数の基本

$message = "こんにちは"

def greet
  puts $message
end

greet       # → こんにちは
puts $message  # → こんにちは

このように、$(ドルマーク)から始まる変数は、どこからでも読み書きできます。

グローバル変数のスコープ

  • 全クラス・全メソッドで共通
  • スクリプト内のどこからでもアクセス可能
  • 定義された順番に関係なく参照できる

書き換えも自由

$count = 0

def increment
  $count += 1
end

increment
increment
puts $count  # → 2

どこからでも自由に値を変更できるという柔軟さがありますが、これがバグの温床にもなりやすいです。

使う際の注意点

  • スコープが広すぎて予測しづらい
  • メソッドやクラスが独立性を失う
  • 他の開発者と変数名がかぶる危険

そのため、実務ではグローバル変数の使用は最小限に抑えるのが望ましいです。

グローバル変数の代替案

目的代替手段
クラス内で共有クラス変数(@@変数)またはクラスインスタンス変数
インスタンス内で保持インスタンス変数(@変数)
メソッド内限定ローカル変数
設定値の保持定数(大文字)

組み込みのグローバル変数

Rubyには、もともと用意されているグローバル変数もあります:

  • $LOAD_PATH:ライブラリの検索パス
  • $!:直前の例外オブジェクト
  • $_:最後に読み込んだ行
  • $0:実行されたファイル名

これらはRuby内部で便利に使われていますが、初心者が誤って上書きすると予期しない動作になることもあります。

まとめ

Rubyのグローバル変数($変数)は、全体で共有できる便利な変数ですが、スコープが広すぎるため慎重に使う必要があります。 基本的には、他の変数や定数、引数などで代替できないかを考えてから使用するようにしましょう。

「とにかくどこからでもアクセスしたい!」という場合以外では、グローバル変数よりも構造化された設計を優先しましょう。

 

Ruby関連用語集

−−−−−  Ruby  −−−−−

Rubyのオブジェクト指向とは?クラスやメソッドの仕組みをわかりやすく解説

Rubyのクラス(Class)とは?オブジェクトの設計図を学ぼう

Rubyのモジュール(Module)とは?コードを整理・共有する仕組みを学ぼう!

Rubyのメソッド(Method)とは?定義と使い方をやさしく解説

Rubyのブロック(Block)とは?繰り返しやコールバック処理に使える便利な仕組み

Rubyのイテレータ(Iterator)とは?繰り返し処理の基本をマスターしよう!

RubyのEnumerableモジュールとは?便利な繰り返し処理を一気に習得!

RubyのProc(プロック)とは?ブロックをオブジェクト化して使いこなそう

RubyのLambda(ラムダ)とは?Procとの違いも含めてやさしく解説!

Rubyのシンボル(Symbol)とは?文字列との違いと使いどころをわかりやすく解説

Rubyのハッシュ(Hash)とは?キーと値のペアでデータを扱う基本構造

Rubyの配列(Array)とは?基本構文と便利な操作方法をマスターしよう!

Rubyのスコープ(Scope)とは?変数の見える範囲を理解しよう

Rubyのインスタンス変数(@変数)とは?クラスでデータを保持する基本

Rubyのクラス変数(@@変数)とは?全インスタンスで共有する値を管理する

Rubyの定数(Constant)とは?値を固定するための書き方と使い方

Rubyのグローバル変数($変数)とは?使い方と注意点をやさしく解説

Rubyのself(自己参照)とは?使い方と意味をやさしく解説!

Rubyの継承(Inheritance)とは?コードの再利用と拡張の基本

Rubyのミックスイン(Mixin)とは?モジュールで機能を共有する方法

Rubyのメソッドのオーバーライド(Override)とは?継承したメソッドを再定義しよう

Rubyの例外処理(Exception Handling)とは?エラー発生時の安全な対処法

Rubyのbegin-rescue-end構文とは?エラーを安全に処理する基本構文

Rubyのyield(ブロック呼び出し)とは?ブロックの使い方と柔軟なメソッド設計

Rubyのrequire / loadとは?外部ファイルの読み込み方法と使い分け

Rubyのgem(RubyGems)とは?便利なライブラリの管理方法を解説!

Bundlerとは?Rubyのgemを簡単に管理できる便利ツール

RubyのRakeとは?ビルドやタスクを自動化する便利ツールを解説!

IRB(Interactive Ruby)とは?Rubyを手軽に試せる対話型ツール

Rails(Ruby on Rails)とは?Webアプリ開発の強力フレームワーク