1

我需要的基本上是在方法中使用一个文件中的变量。让我解释

假设我们有

class Game
attr_accessor :number, :object

end

其中 number 只是一些数字,而 object 是我定义的其他一些类的对象,我们将其命名为 Player 类。现在我们创建另一个文件,它需要 Game 类,它是这样的:

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

我怎样才能做到这一点?

4

2 回答 2

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
于 2013-04-02T12:58:48.143 回答
0

除了 toch 的回答,您可以在设置玩家访问器时保留对游戏对象的引用。除了使用自动访问器,您可以使用get_set_ 访问器语法在访问器中包含自定义代码,这将在右值上设置引用。

于 2013-04-02T13:00:57.537 回答