gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 16:13:54 25 4
gpt4 key购买 nike

我的文件结构如下:

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

我有一个钱包类,它在类中持有货币值(value)。

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

然后我有一个继承自 Wallet 类的播放器类

class Player < Wallet

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

然后我有一个像这样从 Player 继承的 Casino 类

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

我还使用了 require_relative 来提取这两个文件,认为这将使我能够访问它们的全局变量 @money,@name

如果我在 roulette.rb 文件中,这里是我编写的代码,只是为了查看它是否有值(value)。

require_relative '../wallet.rb'

class Roulette
def initialize
puts @wallet
end
end

我将如何在赌场类中访问这些变量?感谢您的帮助。

最佳答案

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

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

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

而且 Roulette 根本不做任何事情来获得钱包。所以它保持默认值 nil。

关于ruby - 如何从另一个文件中的外部类访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53250784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com