From: Shinya Kawaji Date: 2003-07-03T01:22:32+09:00 Subject: [ruby-list:37851] 1.8.0での属性代入の返値 かわじ、です。 1.8.0で属性代入のメソッドを使うと、その返値が「メソッドで定義されている 返値」ではなく、「(代入される位置にある)引数」になっています。 仕様がそのように変更されたのだと思うのですが、どういう「きっかけ」、 あるいは「検討」によってこのような仕様になったのかが気になっています。 MLのログなどを調べましたが、まだ見つけられていません。その当時のMLなど でのやり取りなどを、どなたか覚えていらっしゃいますでしょうか? ポインタを教えていただけましたら幸いです。 $ ruby -v ruby 1.6.8 (2003-06-28) [i386-openbsd3.2] $ irb --simple-prompt >> class A; def a=(val); return 'foo'; end; end => nil >> A.new.a = 'bar' => "foo" >> A.new.a=('bar') => "foo" >> class B; def []=(key,val); return 'foo'; end; end => nil >> B.new[0] = 'bar' => "foo" >> B.new.[]=(0, 'bar') => "foo" $ ~/ruby18/bin/ruby -v ruby 1.8.0 (2003-07-01) [i386-openbsd3.2] $ ~/ruby18/bin/irb --simple-prompt >> class A; def a=(val); return 'foo'; end; end => nil >> A.new.a = 'bar' => "bar" >> A.new.a=('bar') => "bar" >> class B; def []=(key,val); return 'foo'; end; end => nil >> B.new[0] = 'bar' => "bar" >> B.new.[]=(0, 'bar') => "foo" #=> このパターンだけ違う