[#47861] ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — eiichi_maekawa@...

20 messages 2011/02/10
[#47874] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — eiichi_maekawa@... 2011/02/15

前川です。

[#47875] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — OZAWA Sakuro <sakuro@2238club.org> 2011/02/15

さくです。

[#47876] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — eiichi_maekawa@... 2011/02/15

[#47877] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — OZAWA Sakuro <sakuro@2238club.org> 2011/02/15

さくです。

[#47878] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — Kenta Murata <muraken@...> 2011/02/15

むらたです。

[ruby-list:47818] Ruby 1.9 Range オブジェクトのメンバテスト挙動について

From: __JC__ <02ybur@...>
Date: 2011-02-01 15:45:12 UTC
List: ruby-list #47818
JC と申します。初めまして。

Time オブジェクトを端点に持つ Range オブジェクトの挙動が
ruby 1.8 と ruby 1.9 で異なりました。 1.8 と 1.9 の仕様の
違いの問題かとも思いましたが、念のため報告いたします。

## コード (eg.rb)
t0 = Time.now
t1 = t0 + 1
t2 = t0 + 2
puts (t0..t2).include?(t1)

## コード実行結果 (ruby 1.8.7)

~/ > /usr/bin/ruby --version
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
~/ > /usr/bin/ruby eg.rb
true

## コード実行結果 (ruby 1.9.2)
~/ > /usr/local/bin/ruby --version
ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]
~/ > /usr/local/bin/ruby eg.rb
eg.rb:4:in `each': can't iterate from Time (TypeError)
	from eg.rb:4:in `include?'
	from eg.rb:4:in `include?'
	from eg.rb:4:in `<main>'

ruby 1.9 の include? は Range の端点が数値の時は、1.8 と同様に連続範囲
メンバテストを行い、端点が数値でなければ離散範囲メンバテストを行うと本にも書いて
ありますので(プログラミング言語 Ruby D.Flanagan氏, Matz氏; O'REILLY p.74)、
その意味では上記は本にも書いてある通りの挙動をしています。

仕様の問題ですので、ポストするか多少悩みましたが、case 等値 === にも影響して
おりますので念のため報告いたしました。


In This Thread