2012-09-06 5 views
21

、文字列のキーがハッシュコロン記法で動作していないようです:ルビー新しいハッシュコロン記法

1.9.3p194 :005 > {abc: 5} 
=> {:abc=>5} 

1.9.3p194 :004 > {'abc': 5} 
SyntaxError: (irb):4: syntax error, unexpected ':', expecting tASSOC 
{'abc': 5} 
    ^

私はRubyの

の右のバージョンを実行していると思います
1.9.3p194 :006 > RUBY_ENGINE 
=> "ruby" 
1.9.3p194 :007 > RUBY_VERSION 
=> "1.9.3" 
+2

このため開いている機能要求がある - のhttp:一般的なシンボルは(文字列などのキーがまだありません)以降のルビー2.2の新しい表記法を使用して、サポートされていますが、 //bugs.ruby-lang.org/issues/4801 –

答えて

38

ハッシュの新しいコロン表記は、キーがシンボルの場合にのみ機能します。

申し訳ありませんが、そのとおりです。

更新

irb 
2.2.2 :001 > {'abc': 5} 
=> {:abc=>5} 
+4

キーが* some *記号である場合にのみ動作します。例えば、 ':$ set'や': 'pan.cakes'と一緒に使うことはできません。 –

+0

@muistooshort - 公正なポイント。私はそれほど疑ったが、ピクサクでは証拠を見つけることができなかった。あなたは引用を持っていますか? – Chowlett

+1

迅速な対応をありがとう。人々はこれをどのように扱いますか?文字列があるときにロケットのハッシュ表記を使用するだけですか? – phillee

関連する問題