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?