[ruby-list:47275] Re: case when 整数と実数の比較 (ruby 1.9)

From: SASADA Koichi <ko1@...>
Date: 2010-07-30 13:24:21 UTC
List: ruby-list #47275
 ささだです。

(2010/07/30 14:41), 小田 利通 wrote:
>   ruby 1.9.1 での動作がおかしいように思うのですが、どうですか。
> 
>   $ ruby -e '
>    puts RUBY_VERSION
>    case 1
>     when 1.0 ; puts "SAME"
>     else       puts "DIFFERNT"
>    end '
> 
> => 1.9.1
>    DIFFERNT
> 
> => 1.8.7
>    SAME
> 
> when 節を変数にするとちゃんと動きます。

 あー、バグですねぇ。理由はわかりました。どう解決しようか悩んでいます。

(コンパイル時に when が簡単なリテラルだけなら hash をひくように効率化し
ているんですが、
 p({1 => true}[1.0]) #=> nil
 なのが原因)

-- 
// SASADA Koichi at atdot dot net

In This Thread