Ruby:破壊的メソッドでレシーバが変更されない場合はnilを返すは変?
what
irb(main):001:0> a = [] => [] irb(main):002:0> a << 1 => [1] irb(main):003:0> a.uniq! => nil
うーん。まさかnilになるとは思わなかった・・・。でも、仕様みたいですね。
個人的にはnilになってほしくなかったけど・・・。
参考
[ruby-list:27259] Re: Array#sort!
破壊的メソッドでレシーバーが変更されない場合はnilを返すという原則になっているからと説明されているようです。
[ruby-list:27261] Re: Array#sort!
* いつも配列を返す
* qsortをいじって変更されたかどうかを真面目にチェックするのいずれに進むべきか「まだ」決めていないということです。
その後はどうなったんだろう?検索したけど、出てこなかったなぁ。