インスタンス変数で状態を追跡するだけでよい場合は、最も簡単なクラスを人々に示すことから始めることができます。
class Person < Struct.new(:name, :nationality, :greeting) ; end
puts Person.new("b1_", "Somewhere", "Heydiho")
#=> #<struct Person name="b1_", nationality="Somewhere", greeting="Heydiho">
次のステップとして、より「伝統的な」方法で定義されたクラスを示します。
class Person
attr_accessor :name, :nationality, :greeting
def initialize(name, nationality, greeting)
@name = name
@nationality = nationality
@greeting = greeting
end
def to_s
"#@name is from #@nationality and says \"#@greeting\""
end
def say_hi(name)
"#@greeting, #{name}"
end
end
次に、同様のことをattr_accessor
行い、最後にカスタム セッターとゲッターを使用することができます。素晴らしい進歩を示している私見。