#eqlによると、キーが同じであるときに配列(ハッシュのキー)にシャベルで移動すると、なぜこのRubyハッシュがnilと評価されるのか疑問に思っていますか?ハッシュの同等性をチェックします。
some_arr = [1]
=> [1]
my_hash = { some_arr => "value" }
=> {[1]=>"value"}
my_hash[some_arr]
=> "value"
some_arr << 2
=> [1, 2]
my_hash[some_arr]
=> nil
my_hash
=> {[1, 2]=>"value"}
両方#eql?ハッシュの同等性をチェックすると、trueと評価されます。
some_arr.hash == my_hash.keys[0].hash
=> true
some_arr.eql? my_hash.keys[0]
=> true
配列[1,2]を使用しなくても、次の値が得られます。
my_hash[[1,2]]
=> nil
この場合、ハッシュは古くなります。rehash
問題を解決するために使用します。
my_hash.rehash
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加