Trong Python, tôi có thể tạo một băm trong đó mỗi phần tử có một giá trị mặc định khi nó được tham chiếu đầu tiên (còn được gọi là "tự động hóa"). Dưới đây là một ví dụ:Tương đương với Ruby của defaultdict của Python là gì?
from collections import defaultdict
d = defaultdict(int)
d["new_key"] += 1
print d
In dict cho thấy giá trị cho "new_key" là 1.
tương đương trong Ruby là gì? Mã này ném một lỗi:
d = {}
d[:new_key] += 1
puts d
test.rb:3:in `<main>': undefined method `+' for nil:NilClass (NoMethodError)
Làm thế nào để bạn tạo một hash với cả một giá trị mặc định và các phím ': unknown_key' và': next_key'? – rightfold