私は可変長の配列を使用し、配列の長さを圧縮して変換するメソッドを書いています。Rubyには何も見えない配列終了がありますか?
このメソッドでは、配列の長さは50〜126のいずれかを使用できます。 ..呼び出されたときにパラメータに基づいてそれらを変換します。これは、メソッド呼び出しで指定された範囲に動的にアクセスしていることを意味します。これは、存在しない配列のインデックスにアクセスすることを意味します。これに加えて、私がアクセスしている範囲は等しいかもしれません。私のどこに問題があるこれは次のようになります。なぜ起こるか誰もが知ってい範囲でそれにアクセスする際に、他の非存在インデックス
>> a = [0, 1, 2, 3, 4]
# => [0, 1, 2, 3, 4]
>> a[5]
# => nil
>> a[4..4]
# => [4]
>> a[6..6]
# => nil
>> a[5..5]
# => [] <------GGRAAAAAhhh!!! Thought you were nil
>> a[5..7]
# => [] <-------you too
>> a[6..7]
# => nil <-----but you are behaving
とは対照的に、配列の終端ポケットは、動作がおかしいと思われますか?私のコードのための空の配列に対する追加のテストですが、私は一日中私のレールアプリでこのバグを追い払った後にもっと興味があります。 FWIWは、私は、Mac OS X上のRuby 1.8.6を実行しています、パッチレベル114
Mr Mattが1分で勝ったが、私は両方の回答を投票した。ありがとうございます – BushyMark