On 16/11/2015 2:32 AM, <6ftdan@gmail.com> wrote:
>
> This would be most useful in scenarios where a method or proc return multiple values.  When the method returns the values we don't normally know the key outside where the hash assignment is.
>
> ~~~ruby
> example = proc { [{:hi => :hello}, 5] }
>
> hash = {}
>
> # Currently in Ruby with an Unknown key multiple assignment isn't an option
> hash[????], current = example.call
>
> # We currently have to two step it
> result, current = example.call
> hash.update(result)
> ~~~
>
> But with `Hash#update=` we don't have to know the key.
>

I get the use-case, but I think the understandability of the code starts to suffer.

What about something completely new but splat-like?

    hash[*], current = example.call

This is even better when the hash comes last, it looks more like an options parameter:

    opts = get_default_hash
    a, b, opts[*] = example2.call

I would assume this also works in single assignment:

    opts = get_default_hash
    opts[*] = get_new_opts