✨
[Feature #21653] Hash メソッドで default / default_proc の値が引き継がれるようにするチケット
[Feature #21653] Unify Hash methods and preserving default/default_proc
-
Hashが保持するdefaultdefault_procの値は#compact#mergeを除いて新しいオブジェクトで保持されない
user = { name: "homu" }
user.default = 0
# #compact や #merge は default の値が引き継がれる
p user.compact.default # => 0
p user.merge(age: 14).default # => 0
# 他のメソッドは引き継がれない
p user.transform_values { _1.upcase }.default # => nil
p user.transform_keys { _1.to_s }.default # => nil
- これを
#compactや#mergeでもdefaultdefault_procの値が引き継がれるようにするチケット - 具体的には以下のメソッドが上げられている
select/slice/reject/except/compact/merge/transform_values/transform_keys/invert/to_h/Hash[]
- これ、一貫性があったほうがよいとは思いつつ具体的なユースケースとかあったりするんですかねー
Discussion