我需要的是基本上在方法中使用来自一个文件的变量。让我解释一下
我们说
class Game
attr_accessor :number, :object
end
其中number只是一些数字而object是我定义的其他类的对象,让我们将它命名为Player类。现在我们制作另一个文件,这需要类游戏,它是这样的:
require './Game.rb'
require './Player.rb'
myGame = Game.new
myGame.number = 1
myGame.object = Player.new
现在是重要时刻。在Player类中定义的方法中,我想使用myGame.number属性。比如像这样
class Player
attr_accessor :some_var
def method
@some_var = myGame.number
end
end
我怎样才能实现这个目标?
答案 0 :(得分:0)
你的玩家应该参考正在玩的游戏。例如
class Game
attr_accessor :number
attr_reader :my_player
def my_player=(player)
player.my_game = self
@my_player = player
end
end
class Player
attr_accessor :some_var, :my_game
def method
@some_var = @my_game.number if @my_game
end
end
myGame = Game.new
myGame.number = 1
myGame.my_player = Player.new()
myGame.my_player.method
puts myGame.my_player.some_var
答案 1 :(得分:0)
除了toch的答案,您可以在设置播放器访问者时保留对游戏对象的引用。您可以使用get_ set_ accessor syntax在访问者中设置自定义代码,而不是使用自动访问器,这将在右值上设置引用。