本文介绍了关键在红宝石新的哈希的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Ruby 1.9.2的新哈希语法存在一个奇怪的问题。如何在1.9.2中将任何Object作为哈希键?在1.8.7哈希函数中可用:
a =b
{a=> 一些,a => 另一个值,:a => 3rd value}
但是在1.9.2>我们不能)
1.9.2哈希:
{a:some} => {:a =>s} #it转换为旧的散列格式
但是
a =a
{a:...} #这不起作用
{a:some value} =>语法错误,意外的'}',期望$结束
from /home/naveed/.rvm /rubies/ruby-1.9.2-p290/bin/irb:16:in`< main>'
{1:s} =>
SyntaxError:(irb):11:语法错误,意外的':',期望tASSOC {1:s}
之后使用冒号
:
。 作为键! 任何对象都可以使用箭头 =>
。
There is a weird issue with Ruby 1.9.2's new hash syntax. How can I put any Object as key in hash in 1.9.2?
in 1.8.7 hash it works:
a="b"
{"a" => "some",a => "another value",:a => "3rd value"}
But in 1.9.2 > We can't (or how can we if I'm wrong?")
1.9.2 hash:
{a: "some"} => {:a=>"s"} #it convert to old hash format
but
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"}
解决方案
In Ruby 1.9 you are allowed to put colon :
only after symbols that are used as keys!
Any object can use the arrow =>
, even symbols.
这篇关于关键在红宝石新的哈希的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!