変数

Rubyにおける「変数」は、値(データ)を一時的に保存し、プログラム内でその値を参照・操作するための名前(識別子)です。Rubyでは、変数の種類によって名前の先頭に特定の記号が付くことが特徴です。以下に、Rubyの主な変数の種類とその使い方を詳しく説明します。


1. ローカル変数(local variable)

  • 記号: なし(小文字またはアンダースコアで始まる)

  • スコープ: 定義されたメソッドやブロック内でのみ有効

  • 例:

    ruby
    name = "Taro" age = 20

2. インスタンス変数(instance variable)

  • 記号: @(アットマーク)

  • スコープ: インスタンスごとに異なるデータを保持

  • 用途: クラスの中で使い、各インスタンスが独立した状態を持てる

  • 例:

    ruby
    class User def initialize(name) @name = name end def show_name puts @name end end

3. クラス変数(class variable)

  • 記号: @@(アットマーク2つ)

  • スコープ: クラス全体で共有され、すべてのインスタンスで共通

  • 注意点: 継承関係で予期しない挙動をする場合があるため使用には注意

  • 例:

    ruby
    class User @@count = 0 def initialize @@count += 1 end def self.count @@count end end

4. グローバル変数(global variable)

  • 記号: $(ドルマーク)

  • スコープ: プログラム全体で共有

  • 注意点: 他の部分からも値を変更される可能性があるため、使用は最小限にとどめるべき

  • 例:

    ruby
    $global_value = "Hello"

5. 定数(constant)

  • 記号: 最初が大文字(慣例としてすべて大文字)

  • スコープ: クラスやモジュールの中などのスコープに依存する

  • 特性: 値の再代入は警告されるが技術的には可能

  • 例:

    ruby
    MAX_USERS = 100

まとめ:変数の見分け方一覧

種類 記号例 スコープ
ローカル変数 name メソッド・ブロック内
インスタンス変数 @name オブジェクト内
クラス変数 @@name クラス全体
グローバル変数 $name プログラム全体
定数 MAX_VALUE 定義したスコープ内

Rubyは変数の種類ごとに明確なスコープとルールを持ち、オブジェクト指向プログラミングに適した設計がなされています。変数の種類と役割を理解することは、Rubyを正しく使いこなすための重要な基礎です。

生成日:2025/05/03