如何在ruby中调用实例变量

时间:2016-05-06 18:23:03

标签: ruby variables if-statement instance

我最近学会了如何创建类,虽然我不是 ENTIRELY 确定我应该在哪里以及为什么要使用它们。 我使用它们来创建具有类似方法/属性的对象。

我尝试制作一个禁用密码,但我偶然发现了一个无法找到答案的问题。

class Person
  def initialize(name,health)
    @name = name
    @hp = health
  end

  def kick
    @hp -= 1
    if (@hp <= 0)
      puts "#{@name} got REKT!"
    end
  end

end

#Friends
michael = Person.new("Michael", 10)

10.times { michael.kick }

即使此代码有效,我也想知道是否可以在课外使用/调用mihchael的hp?也许有点像哈希? michael[@hp]?但即使我将hp设置为全局变量,这也不起作用。 是否所有检查对象属性的if / else语句都在类中?

非常感谢

1 个答案:

答案 0 :(得分:5)

在Ruby中执行此操作的标准方法是创建一个访问器:

class Person
  attr_reader :name
  attr_reader :hp
end

然后在课外,您可以调用以下内容:

puts "#{michael.name} has only #{michael.hp} HP left"

创建对象的原因是将代码和数据组织到逻辑上下文和容器中。

相关问题