Klassenvariablen in Ruby

Ich bin auf folgendes Beispiel gestoßen vondieses Tutorial:

class Song
  @@plays = 0

  def initialize(name, artist, duration)
    @name = name
    @artist = artist
    @duration = duration
    @plays = 0
  end

  def play
    @plays += 1
    @@plays += 1
    "This song: #@plays plays. Total #@@plays plays."
  end
end

s1 = Song.new("Song1", "Artist1", 234)    # test songs
s2 = Song.new("Song2", "Artist2", 345)   

puts s1.play
puts s2.play
puts s1.play
puts s1.play 

Ist @@ nur innerhalb des Klassenliedes höflich zugänglich?Dieser Kommentar bringt den Punkt auf den Punkt, die Verwendung von Klassenvariablen nicht zu empfehlen. Ist es b / c, dass sie im alltäglichen Gebrauch oft nicht benötigt werden und bei der Verwendung eine Menge Debugging-Kopfschmerzen verursachen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage