Tôi không chắc chắn cách này là mã hợp lệ:của Ruby << (tăng gấp đôi ít hơn) với các biến dụ
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
này sẽ in ra:
WoW SC2 D3 Titan
Tôi nghĩ rằng nó sẽ in ra
WoW SC2 D3
Phương thức add_game không sử dụng biến mẫu. Là người mới đối với Ruby, tôi không hiểu cách làm việc này. không nên nó phải là:
def add_games(game)
@games << game
end
Tôi đang đọc này từ một hướng dẫn và tôi đã không thể tìm thấy bất cứ điều gì về cách < < công trình đặc biệt với các biến số ví dụ. Tôi nghĩ '< <' vừa bị quá tải khi giao dịch với mảng được 'nối thêm vào mảng'. Điều này thực sự làm một cái gì đó w/Singleton lớp học?
Là một sang một bên, hãy thử thêm một 'đặt games' sau cuối cùng của bạn 'đặt lib.games' và bạn sẽ thấy tại sao' @games = trò chơi' phải là '@games = games.dup'. –