io non sono sicuro di come questo è un codice valido:Rubino << (il doppio meno) con le variabili di istanza
class Library
def initialize(games)
@games = games
end
def add_game(game)
games << game
end
def games()
@games
end
end
games = ['WoW','SC2','D3']
lib = Library.new(games)
puts lib.games
lib.add_game('Titan')
puts lib.games
Questo stamperà:
WoW SC2 D3 Titan
penserei che dovrebbe stampare
WoW SC2 D3
Il metodo add_game non utilizza la variabile di istanza. Essendo nuovo a Ruby, non capisco come funzioni. Non dovrebbe deve essere:
def add_games(game)
@games << game
end
sto leggendo questo da un tutorial e non sono stato in grado di trovare qualsiasi cosa su come < < lavora specificamente con le variabili di istanza. Ho pensato che '< <' era appena sovraccarico quando si trattava di array da 'aggiungere all'array'. In realtà sta facendo qualcosa con le classi Singleton?
Per inciso, prova ad aggiungere un 'mette games' dopo l'ultima' mette lib.games' e vedrete perché '@games = games' dovrebbe essere '@games = games.dup'. –