web-dev-qa-db-ja.com

コロン「:」と太い矢印「=>」の違いは何ですか

Rubyのコロン:と太い矢印=>の違いは何ですか?またはいつ何を使用するのですか?

:foo => true
foo: true
30
John Base

構文はハッシュキー/値のペアを定義するためのものであり、違いはRubyバージョンによって異なります。

Ruby 1.8とRuby 1.9の両方でサポートされています

:foo => true

Ruby 1.9でのみサポート

foo: true

Ruby 1.9で開発している場合は、おそらく次の構文を使用する必要があります。

foo: true

それはコミュニティが進んでいる方向であるように見えるので。

24
JDutil

後者は、1.9で導入された新しいハッシュ構文です。たとえば、次を参照してください。

http://breakthebit.org/post/8453341914/Ruby-1-9-and-the-new-hash-syntax

2つのラインが生成するハッシュは同じです。

7
Alex Peattie