【Ruby】Rubyのグローバル変数について詳しく解説します

Ruby

はじめに

グローバル変数は、その名の通りグローバルな範囲を持ち、プログラムのどこからでもアクセス可能です。

グローバル変数は、常にドル記号($)が先頭に付きます。

もし、クラスを超えて利用可能な一つの変数を持ちたい場合は、グローバル変数を定義する必要があります。

初期化されていないグローバル変数はデフォルトでnil値を持ち、それを使用するとプログラムが不可解で複雑なものになる可能性があります。

また、グローバル変数は、プログラム中の任意の場所で変更することができます。

#例
$number = 5

参考例

・グローバル変数を二つのクラスで使用した場合

$number = 3

class Class1
 def print_global
  puts "Class1におけるグローバル変数に入っているのは#$number"
 end
end

class Class2
 def print_global
  puts "Class2におけるグローバル変数に入っているのは#$number"
 end
end

obj1 = Class1.new
obj1.print_global
obj2 = Class2.new
obj2.print_global

#出力結果
Class1におけるグローバル変数に入っているのは3
Class2におけるグローバル変数に入っているのは3

・クラス内に二つのグローバル変数を定義した場合

$global_one = "ほらね?"

class Message
  def instance_method
    puts "グローバル変数はどこでも使えます。 #{$global_one}, #{$global_two}"
  end
  def self.class_method
    $global_two = "使えるでしょ?"
    puts "グローバル変数はどこでも使えます。 #{$global_one}"
  end
end
  
Message.class_method
  
Message = Message.new
Message.instance_method

#出力結果
グローバル変数はどこでも使えます。 ほらね?

グローバル変数はどこでも使えます。 ほらね?, 使えるでしょ?
タイトルとURLをコピーしました