Существует странная проблема с новым синтаксисом хеша 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"}
Вы знаете, что старый синтаксис по-прежнему действует в версии 1.9, верно? Это не замена, это дополнение. – sepp2k
Да, старый синтаксис все еще здесь, и это будет ... Я не люблю вставлять слишком много ракет в свой код :) => => => Dusss Duss – Naveed
Возможный дубликат [Есть ли разница между ': key = > "value" и 'key:" value "' assignments?] (http://stackoverflow.com/questions/8675206/is-there-any-difference-between-key-value-and-key-value-assignments) –