From: matz@... (Yukihiro Matsumoto) Date: 2003-09-03T15:03:02+09:00 Subject: [ruby-list:38346] Re: String#reverse! のバグ? まつもと ゆきひろです In message "[ruby-list:38345] Re: String#reverse! のバグ?" on 03/09/03, Kazuhiko writes: |Array の方は、String と逆に、ruby-1.6 だと nil になっていますね... どうしていつも逆になるんだか。 |個人的には、変化がなくても、nil ではなく「変化のない結果」を返す方が直感 |的だと思いますがいかがでしょうか? 変化があるかどうか分かるのであればnilを返すべきでしょう。 reverseはちょっとわかりにくく("aba".reverseをどう見るかによ るのですが)、sortではqsortの改造なしには現実的ではありません。 ですから、ありえる選択肢は * sort!, reverse!は変化したかどうかをいつも検出し、変化が 無ければnil。 * sort!, reverse!は変化があってもなくてもレシーバを返す。 * sort!は変化が無くてもレシーバを返す。reverseは要素の数が 1以下であればnilを返す。 のいずれかでしょう。たぶん2番目が現実的かな。