From: "mame (Yusuke Endoh)" Date: 2012-07-24T00:10:23+09:00 Subject: [ruby-core:46669] [ruby-trunk - Feature #6414] Destructuring Assignment Issue #6414 has been updated by mame (Yusuke Endoh). Edward Tsech and Marc-Andre Lafortune, We discussed your slide at the developer meeting (7/21). We were not sure if we can actually implement this feature in terms of yacc. Could you create an experimental patch? Matz was basically positive to the feature itself, but wanted to focus on surely implementable syntax (with no parser conflict and with reasonable code). -- Yusuke Endoh ---------------------------------------- Feature #6414: Destructuring Assignment https://bugs.ruby-lang.org/issues/6414#change-28335 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/