Ruby
【Ruby】インスタンス毎に値を共有できるクラス変数を作成する
作成日:2022年07月29日
更新日:2022年07月29日
Ruby で、インスタンス毎に値を共有できる、クラス変数を作成します。
今回は、インスタンスが作成される度、値が 1 ずつ増えるクラス変数を作成します。
クラス変数を作成するには、変数名の前に『@@』を付けます。
ruby
class Fluit
@@fluit_number = 0
end
initializeの中に、@@fluit_numberが 1 ずつ増えるようにします。
ruby
class Fluit
@@fluit_number = 0
def initialize(product)
@product = product
@@fluit_number += 1
end
end
puts を使い、出力しましょう。
ruby
class Fluit
@@fluit_number = 0
def initialize(product)
@product = product
@@fluit_number += 1
end
def fluit
puts "#{@@fluit_number}: #{@product}"
end
end
banana = Fluit.new("バナナ")
banana.fluit
では、ターミナルで実行すると、
クラス変数とインスタンス変数が出力されました。
さらにりんごのインスタンスを作成してみると、
ruby
class Fluit
@@fluit_number = 0
def initialize(product)
@product = product
@@fluit_number += 1
end
def fluit
puts "#{@@fluit_number}: #{@product}"
end
end
banana = Fluit.new("バナナ")
banana.fluit
banana = Fluit.new("りんご")
banana.fluit
クラス変数が保持され、インスタンスが作成される度に 1 ずつ増えました。
お知らせ
私事ですが、Udemyで初心者を対象にしたReactの動画コースを作成しました。
Reactについて興味がありましたら、ぜひ下のリンクからアクセスしてください。
詳しくはこちら(Udemyの外部サイトへ遷移します)