From: Tanaka Akira Date: 2009-04-02T00:10:12+09:00 Subject: [ruby-dev:38242] Re: big time In article <49D33295.3000600@ruby-lang.org>, Urabe Shyouhei writes: > うーん、もともとの > 「ライブラリ作者がいわれのないバグ報告で疲弊するのを避けたい」 > というニーズはあまり満たしてくれないのが気になりますが、しょうがないのかなあ。 サブクラスにすると満たされるんですか? > そういう場合は両方を包含するようなスーパークラスを定義するのだと思います。たと > えばFloatとBignumには共通のNumericというスーパークラスがあります。 メソッドで検査するなら、検査したい範囲それぞれについてひとつ 定義すればいいのに対し、クラスで行うと検査したい範囲それぞれ についてひとつ定義するのに加えて、そういうスーパークラスを定 義することになります。そのスーパークラスを定義することによっ てどんな利点が得られますか? メソッドよりも便利ですか? > たとえば3/2のクラスはなんでしょうか? Fixnumですよね。 > Rubyの場合は「四則演算では型は変えない方に倒す」という設計なのだと思います。 そういう設計だとは思いません。 たとえば 65536 * 65536 は Bignum ですね。 > べつに静的型を導入しなくてもFile.utimeより前に例外を起こす方法はあるじゃないで > すか。つまり現状はそうなわけですけど。 そうですね。そのかわり、2038年などという制約を File.utime に 関係ないところにまで強制するわけです。 私は、問題が存在するにせよ、問題よりも利点のほうが大きいと主 張しているのですが、卜部さんは問題のほうが利点よりも大きいと 考えますか? > そもそもなんでFile.utimeにはTimeオブジェクトを渡さないといけないんですか? > File.utimeの引数に渡すオブジェクトが、比較したり表示したりするTimeオブジェクト > でないといけない理由はないと思うんですけど。 > File.utimeがそんなに特殊ならTimeと切り離せばいいんじゃない? わたしはそうしたいとは思いません。 卜部さんはそうしたいんですか? > それはCのうれしくなさがRubyのレベルまで上がってきてるだけで何の解決にもなってな > いように思えます。 Time の範囲を拡大するにあたって、それを解決しないといけない んですか? -- [田中 哲][たなか あきら][Tanaka Akira]