From: matz@... (Yukihiro Matsumoto) Date: 2000-02-29T11:52:48+09:00 Subject: [ruby-dev:9313] Re: [fix] String#* with huge string まつもと ゆきひろです In message "[ruby-dev:9312] Re: [fix] String#* with huge string" on 00/02/29, EGUCHI Osamu writes: |String#[](と String#[]=の添字の有効範囲っは |-2^31 〜 2^31 - 1 って理解であってますか? signed longの範囲内です。でも、今見返したら結構intで受けてい る箇所がたくさんありました。実用上問題はないのですが、そろえ た方が良いですね。 |あと | | % ruby -e 'a = [1,2,3,4] ; p a[3.14]' | 4 | % ruby -e 'a = "abc" ; p a[3.14]' | /tmp/rbd40713:1:in `[]': invalid index for string (IndexError) | from /tmp/rbd40713:1 | | |の様に、 Array#[] は Float を許して、 |String#[] が許さないのは、どちらかに |統一した方が良いように思えます。 私が考えているようにNUM2LONGを使うならば、StringもFloatを許 すようになります。もっともNUM2LONGがFloatを許すのは間違いだ と言う考え方もありえるでしょうが。 まつもと ゆきひろ /:|)