3

Ruby で dict/hash を定義するときは、次のようにします。

{:a => 'b'}

しかし、次のような Ruby コードを読みました。

{:a : 'b'}

これは Python に似ている必要があります。それをサポートしているRubyバージョンはありましたか?それについて言及されているRubyの本を読んだことがありません。

アップデート:

Linux ボックスで次のコマンドを実行しました。

$ ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]
$ ruby -e 'puts {a: "b"}'
-e:1: syntax error, unexpected ':', expecting '}'
puts {a: "b"}
        ^

そして私のMacbookで以下を実行しました:

$ /Users/chaol/.rvm/wrappers/ruby-2.0.0-p247/ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.3.0]
$ /Users/chaol/.rvm/wrappers/ruby-2.0.0-p247/ruby -e 'puts {a: "b"}'
-e:1: syntax error, unexpected ':', expecting '}'
puts {a: "b"}
        ^

Ruby のバージョンはどちらも 1.9+ ですが、それでもエラーが発生するのはなぜですか?

4

2 に答える 2

5

2 番目の例の正しい構文は次のとおりです。

{ a: 'b' }

これは Ruby 1.9 以降の新機能で、Ruby ハッシュに JSON 風の構文を使用できるようにします。

于 2013-10-14T03:04:51.987 に答える