[ruby-list:50782] Re: [質問] a=a があると動作が異常

From: Tanaka Akira <akr@...>
Date: 2019-06-07 01:35:09 UTC
List: ruby-list #50782
2019年6月7日(金) 10:20 nekomura <mimomakun@gmail.com>:

> 下記スクリプトの結果が期待と違います。なぜでしょうか?
> a = a は不要ですが、なにもしないことを明示するために書いたものです。
> なおOS付属の ruby 2.3.7p456 では期待通りの結果でした。
>
>
> a = "aaa"
> if a == "bbb" || a == "ccc" then
>     a = a
> else
>     puts "OK"
> end
> puts "END"
>
>
>
> 実行結果
>  END
>
> 期待する結果
>  OK
>  END

お、面白いですね。
all-ruby で試すと、ruby-2.5.2 から ruby-2.5.6 および
ruby-2.6.0-preview3 以降で発生するようです。

% all-ruby -e '
a = "aaa"
if a == "bbb" || a == "ccc" then
    a = a
else
    puts "OK"
end
puts "END"
'
...
ruby-1.1b0            OK
                      END
...
ruby-2.5.1            OK
                      END
ruby-2.5.2            END
...
ruby-2.5.5            END
ruby-2.6.0-preview1   OK
                      END
ruby-2.6.0-preview2   OK
                      END
ruby-2.6.0-preview3   END
...
ruby-2.7.0-preview1   END
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread