[ruby-core:123541] [Ruby Feature#15381] Let double splat call `to_h` implicitly
Issue #15381 has been updated by sanjioh (Fabio Sangiovanni). jeremyevans0 (Jeremy Evans) wrote in #note-11:
[…] Maybe in Ruby 4?
Bringing this up since it seems that this year’s Ruby version will be 4.0. Is this change going to be considered for inclusion in the new release? ---------------------------------------- Feature #15381: Let double splat call `to_h` implicitly https://bugs.ruby-lang.org/issues/15381#change-114919 * Author: sawa (Tsuyoshi Sawada) * Status: Open ---------------------------------------- The single splat calls `to_a` implicitly on the object (if it is not an array already) so that, for example, we have the convenience of writing conditions in an array literal: ```ruby a = [ *(:foo if some_condition), *(:bar if another_condition), ] ``` And the ampersand implicitly calls `to_proc` on the object (if it is not a proc already) so that we can substitute a block with an ampersand followed by a symbol: ```ruby some_method(&:some_method_name) ``` Unlike the single splat and ampersand, the double splat does not seem to implicitly call a corresponding method. I propose that the double splat should call `to_h` implicitly on the object if it not already a Hash so that we can, for example, write a condition in a hash literal as follows: ```ruby h = { **({a: 1} if some_condition), **({b: 2) if another_condition), } ``` There may be some other benefits of this feature that I have not noticed yet. -- https://bugs.ruby-lang.org/
participants (1)
-
sanjioh (Fabio Sangiovanni)