Nie jestem pewien, jak to jest poprawny kod:Ruby << (dwukrotnie mniej niż) o zmiennych instancji
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
ten wypisze:
WoW SC2 D3 Titan
to myślę, że powinien wydrukować
WoW SC2 D3
Metoda add_game nie używa zmiennej instancji. Będąc nowicjuszem w Ruby, nie rozumiem, jak to działa. Nie powinno to być:
def add_games(game)
@games << game
end
Czytam to z samouczka i nie byłem w stanie znaleźć niczego na temat < < działa konkretnie zmiennych instancji. Myślałem, że "< <" zostało po prostu przeciążone, gdy mamy do czynienia z tablicami, które mają być "dołączane do tablicy". Czy to faktycznie robi coś z lekcjami Singleton?
Tak na marginesie, spróbuj dodanie 'stawia games' po ostatnim' stawia lib.games' a zobaczysz dlaczego '@games = gry 'powinny mieć postać' @games = games.dup'. –