由于某种原因,当我调用告诉我对象大小的方法时,我什么也得不到。这是我的代码:
def getSize(name)
data = Hash.new
data[:aarakocra] = "medium"
print "Got size"
return data[:aarakocra]
end
class Monster
def initialize(name, statStr, statDex, statCon, statInt, statWis, statCha)
@name = name
@statStr = statStr
@statDex = statDex
@statCon = statCon
@statInt = statInt
@statWis = statWis
@statCha = statCha
end
@size = "medium"
def displayStats
return [@statStr, @statDex, @statCon, @statInt, @statWis, @statCha]
end
def displaySize
return @size
end
end
aarakocra = Monster.new("Aarakocra", 10, 14, 10, 11, 12, 11)
if aarakocra.displaySize == "medium"
puts "Hello"
else
puts "Not true"
end
我希望输出为hello
。
如果有人能解释一下发生了什么,我会非常感激的。
1条答案
按热度按时间nuypyhwy1#
@Thrayna看起来像是在initialize方法外初始化示例变量
@size
,请尝试将该变量移到它里面。由于它是一个示例变量,它会在创建对象(调用Moster.new
)或调用另一个方法时被初始化;注意,在初始化示例变量之前,它们默认为nil。