Ok, vì vậy tôi muốn tạo một băm có băm rỗng làm giá trị mặc định. Một chút kỳ lạ, tôi biết, nhưng hãy nói rằng tôi nghĩ rằng nó có thể hữu ích.Tại sao Hash.new ({}) ẩn thành viên băm?
Vì vậy, đây là những gì tôi đã làm:
>> a = Hash.new({})
=> {}
>> a[:a][:b] = 5
=> 5
>> a
=> {}
>> a[:a]
=> {:b=>5}
>> a.keys
=> []
>> a.size
=> 0
>> a[:a].size
=> 1
Nói cách khác, tôi không thấy thành viên băm khi tôi kiểm tra việc băm, nhưng tôi có thể truy cập nó bằng chính nó.
Hành vi này có được mong đợi không? Chuyện gì đang xảy ra ở đây?
BTW, đây là Ruby 1.9.1, chưa thử các phiên bản cũ hơn.
Edit: đơn giản hóa ví dụ như nó không phải là một băm băm băm ...
Cũng có thể sao chép trên 1.8.7. –