如何在 ruby 中调用实例变量
How to call instance variables in ruby
我最近学会了如何创建 classes,尽管我完全 不确定我应该在哪里以及为什么要使用它们。
我会用它们来创建具有类似 methods/properties.
的对象
我尝试制作一个堵嘴代码,但我偶然发现了一个我找不到答案的问题。
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 }
尽管此代码有效,但我想知道是否有可能 use/call mihchael 的生命值超出 class?也许有点像哈希? michael[@hp]
?但这不起作用,即使我将 hp 设置为全局变量。
所有检查对象属性的 if/else 语句都应该在 class 中吗?
非常感谢
在 Ruby 中执行此操作的标准方法是创建访问器:
class Person
attr_reader :name
attr_reader :hp
end
然后在 class 之外你可以这样调用:
puts "#{michael.name} has only #{michael.hp} HP left"
创建对象的原因是将代码和数据组织到逻辑上下文和容器中。
我最近学会了如何创建 classes,尽管我完全 不确定我应该在哪里以及为什么要使用它们。 我会用它们来创建具有类似 methods/properties.
的对象我尝试制作一个堵嘴代码,但我偶然发现了一个我找不到答案的问题。
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 }
尽管此代码有效,但我想知道是否有可能 use/call mihchael 的生命值超出 class?也许有点像哈希? michael[@hp]
?但这不起作用,即使我将 hp 设置为全局变量。
所有检查对象属性的 if/else 语句都应该在 class 中吗?
非常感谢
在 Ruby 中执行此操作的标准方法是创建访问器:
class Person
attr_reader :name
attr_reader :hp
end
然后在 class 之外你可以这样调用:
puts "#{michael.name} has only #{michael.hp} HP left"
创建对象的原因是将代码和数据组织到逻辑上下文和容器中。