[ruby-list:38345] Re: String#reverse! のバグ?

From: Kazuhiko <kazuhiko@...>
Date: 2003-09-03 05:54:09 UTC
List: ruby-list #38345
かずひこです。

At Wed, 3 Sep 2003 14:47:15 +0900,
U.Nakamura wrote:

> | 1バイト文字列はリバースしても「変化がない」からじゃないです
> | かね。あれ、sortとreverseは特別扱いするんでしたっけ。
> 
> Array#reverse!は特別扱いしてますね。
> その理由が「String#reverse!に合わせるため」だとリファレンスに
> は書いてあったりします。
> 
> String#reverse!の変更理由がログに書いてないので、元に戻す、に
> 一票。

Array の方は、String と逆に、ruby-1.6 だと nil になっていますね...

● ruby 1.8.0 (2003-09-02)
irb(main):001:0> [1].sort
=> [1]
irb(main):002:0> [1].sort!
=> [1]
irb(main):003:0> [1].reverse
=> [1]
irb(main):004:0> [1].reverse!
=> [1]

● ruby 1.6.8 (2002-12-24)
irb(main):001:0> [1].sort
=> [1]
irb(main):002:0> [1].sort!
=> nil
irb(main):003:0> [1].reverse
=> [1]
irb(main):004:0> [1].reverse!
=> nil

個人的には、変化がなくても、nil ではなく「変化のない結果」を返す方が直感
的だと思いますがいかがでしょうか?
-- 
かずひこ <http://wiki.fdiary.net/kazuhiko/>
  ★シャア「名字が付いてない」
  ☆一兵卒「あんなの飾りです。偉い人にはそれが分からんのです」

In This Thread