最近、私はクラスを作成する方法を学びましたが、私は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ステートメントがクラス内にあるべきですか?
puts "#{michael.name} has only #{michael.hp} HP left"
:あなたはのようなものを呼び出すことができ、クラスの外に続いて
class Person
attr_reader :name
attr_reader :hp
end
:
は
私はattr_accessorを探していると思います。 'attr_accessor:hp' –
この質問では' attr_accessor'について読むことをお勧めします:http://stackoverflow.com/questions/4370960/what-is-attr-accessor-in-ruby –
あなたのコードを変更するのが簡単になるように、画像ではなくテキストです。 – nwk