落書きノート

ふと自分が気になった事を書いてます

Ruby 個人的に勉強になることその2

先ほどのプログラムをもっと簡単にするとこうなります。

class HelloWorld
  attr_accessor :name
  def initialize(myname="Ruby")
    @name = myname
  end
  def hello
    print "Hello, world. I am ", @name, ".\n"
  end
end

bob = HelloWorld.new("Bob")
ruby = HelloWorld.new

bob.hello
puts bob.name = "Alice"
bob.hello

ruby.hello
puts ruby.name = "Perl"
ruby.hello

だいぶすっきりしました。attr_accessorというキーワードを初めて見た時は馴染めなかったのですが、これは参照と変更の両方を可能にする、つまりgetter/setterメソッドを追加するようなもの…と思っておけばいいと思います。なんかまるで経験者にわかるようにしか書いてないな…。まあ、このブログは好きなことを書いていきます。笑