Issue #6414 has been updated by mame (Yusuke Endoh).


Marc-Andre, your slide is received.  Thank you!


Rodrigo, I don't know CoffeeScript, but what is the difference between OP's (second) proposal and yours?

> name = "John"
> last    = "Smith"
> find({name, last}) # equals to => find({name: "John", last: "Smith"})

> Instead of
> a = 1; b = 2; c = {a: a, b: b}
> I'd prefer to write just c = {a, b}.

-- 
Yusuke Endoh <mame / tsg.ne.jp>
----------------------------------------
Feature #6414: Destructuring Assignment 
https://bugs.ruby-lang.org/issues/6414#change-27689

Author: edtsech (Edward Tsech)
Status: Assigned
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: core
Target version: 2.0.0


I mean:

john = {name: "John", last: "Smith"}
{name, last} = john # extract value by key from the hash and set to local variable with same name
name # => "John"
last # -> "Smith"

Useful for ex. for  "options" hashes:
def select(options={})
  {only, except} = options
  ...
end

As extra part of this feature can be hash constructing in this way:

name = "John"
last    = "Smith"
find({name, last}) # equals to => find({name: "John", last: "Smith"})

I think both really nice to have in Ruby.
Thanks.


-- 
http://bugs.ruby-lang.org/