2010-04-12から1日間の記事一覧

代入メソッドの罠

Ruby ではメソッド名の末尾に = が付いていると、属性への代入のように使える。 def Foo def name=(name) @name = name end end foo = Foo.new # => #<Foo:0x100c7f98 @name=""> foo.name = 'foo' # => "foo" ←ここに注目 foo # => #<Foo:0x100c7f98 @name="foo"> つまり代入のように書くと Foo#name=(name) を呼び</foo:0x100c7f98></foo:0x100c7f98>…