ruby 对象未返回示例变量值

nwnhqdif  于 2022-11-29  发布在  Ruby
关注(0)|答案(1)|浏览(161)

由于某种原因,当我调用告诉我对象大小的方法时,我什么也得不到。这是我的代码:

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
如果有人能解释一下发生了什么,我会非常感激的。

nuypyhwy

nuypyhwy1#

@Thrayna看起来像是在initialize方法外初始化示例变量@size,请尝试将该变量移到它里面。由于它是一个示例变量,它会在创建对象(调用Moster.new)或调用另一个方法时被初始化;注意,在初始化示例变量之前,它们默认为nil。

相关问题