Rubyで変数宣言の書き方

Rubyで変数宣言の書き方

Rubyでの変数宣言は非常にシンプルで、型を指定する必要はありません。
Rubyでは、変数の型は自動的に推論されます。
変数を宣言する際には、変数名の前に特別な記号が付くことがあります。
以下に、Rubyでの変数宣言の主な方法について詳しく説明します。

1. ローカル変数

ローカル変数は、最も基本的な変数であり、プログラムの中で特定のスコープ内でのみ有効です。
ローカル変数は、通常小文字の英字で始まり、必要に応じてアンダースコアで区切ることができます。
変数名の後に初期値を代入することで宣言します。

user_name = "Alice"
age = 30
temperature_celsius = 23.5

上記の例では、user_name、age、および temperature_celsius はローカル変数です。
それぞれ、文字列、整数、浮動小数点数が代入されています。

2. グローバル変数

グローバル変数は、プログラム全体で有効です。
グローバル変数は、変数名の前に $ 記号を付けることで宣言します。
グローバル変数を使う際は、コードのどこからでもアクセス可能ですが、使用する際は他の部分と衝突しやすくなるため、注意が必要です。

$global_variable = "This is global"

3. インスタンス変数

インスタンス変数は、クラスのインスタンスごとに保持される変数です。
クラスの中で @ 記号を前に付けることで宣言します。
インスタンス変数は、クラスのインスタンスが作成された際に、そのインスタンスに関連付けられます。

class Person
  def initialize(name, age)
    @name = name
    @age = age
  end
end

ここでは、@name と @age がインスタンス変数です。
これにより、Person クラスのインスタンスが作成されると、それぞれのインスタンスに独立した @name と @age の値を持つことができます。

4. クラス変数

クラス変数は、クラスのすべてのインスタンスで共有される変数です。
クラス内で @@ 記号を前に付けて宣言します。
クラス変数は、クラスとそのすべてのサブクラスで共有されるため、状態の管理に役立ちます。

class Counter
  @@count = 0

  def increment
    @@count += 1
  end

  def self.count
    @@count
  end
end

@@count はクラス変数であり、Counter クラスのすべてのインスタンスからアクセス可能です。
increment メソッドを呼び出すことで、@@count が増加し、count メソッドでその値を取得できます。

5. 定数

定数は、値を変更することがない変数です。
定数は、大文字で始まり、必要に応じてアンダースコアで区切ることができます。
Rubyでは、定数の値を変更すると警告が表示されますが、変更は可能です。

PI = 3.14159
MAX_LIMIT = 100

ここでの PI と MAX_LIMIT は定数であり、プログラム全体で一定の値を保持することが意図されています。

Rubyでの変数宣言はこのように非常に直感的であり、プログラムの必要に応じて適切な変数タイプを使い分けることができます。
変数のスコープや寿命、使用目的を理解することで、効率的にコードを記述することが可能です。