chr*_*ris 11 javascript ruby hash shorthand ecmascript-6
在JavaScript ES6中,我们可以创建对象,其中变量名称变为如下所示的键:
> let a = 'aaa'
'aaa'
> let b = 'bbb'
'bbb'
> { a, b }
{ a:"aaa", b:"bbb" }
Run Code Online (Sandbox Code Playgroud)
Ruby有与哈希相同的东西吗?
澄清:显然这个问题涉及速记符号.我找{a,b}不{a:a,b:b}.
简短的回答没有。
更长的答案
前田修吾在2015年为此提出了一个补丁(您可以在此处阅读有关此问题的详细信息:https : //bugs.ruby-lang.org/issues/11105)。
当时Matz还没有想到,但是将来可能会改变主意。
同时,您可以使用Shugo的补丁程序并为自己的Ruby版本打补丁,以自己拥有ES6哈希字面量!
要修补Ruby以添加哈希,请执行以下操作:
1)从此处下载补丁程序https://gist.github.com/thechrisoshow/1bb5708933d71e0e66a29c03cd31dcc3(当前适用于Ruby 2.5.0)
2)使用RVM安装该Ruby的补丁版本。即
rvm install 2.5.0 -n imphash --patch imphash.patch
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用RVM选择Ruby的修补版本:
rvm use 2.5.0-imphash
Run Code Online (Sandbox Code Playgroud)
(Imphash是隐式哈希的缩写)