在红宝石新的哈希键(key in ruby new hash)

2019-06-25 08:37发布

有使用Ruby 1.9.2的新的哈希语法一个奇怪的问题。 我怎样才能把任何物体在1.9.2中的哈希键?

在1.8.7哈希它的工作原理:

a="b" 
{"a" => "some",a => "another value",:a => "3rd value"}

但在1.9.2>我们不能(或怎能如果我错了吗?“)

1.9.2哈希:

{a: "some"} =>  {:a=>"s"} #it convert to old hash format

a="a" 
{a: "..."} # This doesn't work

{"a": "some value"} => syntax error, unexpected '}', expecting $end
from /home/naveed/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'

{1: "s"} =>

SyntaxError: (irb):11: syntax error, unexpected ':', expecting tASSOC {1: "s"}

Answer 1:

在Ruby 1.9你允许把冒号: 被用作按键符号之后

任何对象都可以使用箭头=>偶符号。



Answer 2:

要说这另一种方式,新的功能是不是一个新的通用哈希语法,它的编写,其中键是符号文字散列具体的调整。 {a: 1}是这个的快捷方式{:a => 1}而这一切。 如果你还有什么钥匙,你必须使用常规的语法。



文章来源: key in ruby new hash