Project

General

Profile

Actions

Feature #18124

closed

Hash shorthands (matching constructors functionality in JS)

Added by myxoh (Nicolas Klein) over 2 years ago. Updated over 2 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:<unknown>]

Description

Suggestion:

To implement one shorthand operators that allows you to construct hash into local variables and construct local variables into a hash.

Context:

Javascript and other languages have a similar feature. It's helpful, and I don't think there's anything stopping Ruby for supporting it.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
Ruby also supports destructuring from an array.

Syntax:

Constructor:

The constructor shorthand would allow you to create a hash where the symbol key has the same name as the variable.

For example:

local_number = 1 
user = OStruct.new(name: 'john')
hash = %C{ local_var user }

would be equivalent to:

local_number = 1 
user =  OStruct.new(name: 'john')
hash = { local_number: local_number, user: user }

The new syntax is based on ruby's existing literal constructors syntax.

EDIT:
Edited to remove a reference to the destructuring, which is already implemented on Ruby 3


Related issues 2 (0 open2 closed)

Related to Ruby master - Feature #14579: Hash value omissionClosedmatz (Yukihiro Matsumoto)Actions
Related to Ruby master - Feature #17292: Hash Shorthand / PunningClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0