如何从外部类访问另一个文件中的变量

时间:2018-11-11 16:29:52

标签: ruby

我的文件结构如下:

Main/
Games/ 
   roulette.rb
casino.rb
wallet.rb
player.rb

我有一个钱包类,像这样,在该类中拥有货币值。

class Wallet
    attr_accessor :money
    def initialize
        @money = 0
    end
end

然后我有了一个从电子钱包类继承的播放器类

class Player < Wallet

    attr_accessor :name
    def initialize
        super()
        @name = nil
        get_user_info
    end

然后我有一个Casino类,它是从Player继承来的

class Casino < Player
    def initialize
        binding.pry
        puts @money, @name
    end

我还使用require_relative提取了两个文件,以为可以访问它们的全局变量@money, @name

如果我在roulette.rb文件中,这是我写的代码,只是看它是否有值。

require_relative '../wallet.rb'

class Roulette
    def initialize
        puts @wallet
    end
end

我将如何去获得赌场类中的这些变量?感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这些不是全局变量。它们被称为“实例变量”,要访问它们,您需要创建赌场和玩家的实例。看起来像这样。

player = Player.new
player.money # => 0
player.money += 10
player.money # => 10

在您的Casino类中,您不会调用父初始化程序(我认为是一个简单的疏忽),因此它不会初始化@name@money

轮盘赌根本不做任何事情来获得钱包。因此它保持默认值nil。