【发布时间】:2015-08-01 04:36:54
【问题描述】:
我最近在 ruby 中进行实验,遇到了一个障碍。我想将一个类实例推送到一个数组,而不是在打印数组元素时输出: [#]
我希望它输出:
[“M16A1”]
但是符号和实例变量(self.variable、self.class.variable)并没有达到预期的效果,而且我无法敲定正确的方法,所以我想知道这是否是一种可能的尝试。
代码:
class WeaponItem
attr_reader :wName
def initialize(wName,mPower,mxPower)
@wName = wName
@mP = mPower
@mxP = mxPower
end
def getStats
puts "Weapon"
puts "Name: #{@wName}"
puts "Damage: #{@mP}~#{@mxP}"
end
def calculateDamage()
rMAX = @mxP/@mP
rMAX
end
end
vA = Array.new(3){0}
wP = WeaponItem.new("M16A1", 5, 15)
vA.push(wP)
print vA
谢谢
【问题讨论】:
-
当你调用
puts时,你是在隐式调用对象的to_s方法。默认情况下,它会打印实例的地址。 Steffen 的回答会为您解决问题。
标签: arrays ruby class instance instance-variables