Ruby の初心者向けの記事によく以下のような記述がありますが,間違いです。
ハッシュには以下のように 3 種類の記法があります。
{"foo" => 3, "bar" => 4}
{:foo => 3, :bar => 4}
{foo: 3, bar: 4}
二つ目と三つ目は同じハッシュを別の記法で書いていますが,一つ目はキーが文字列なので,記法が違っているのではなく,表しているモノが違います。
Ruby のハッシュは,キーとして文字列,シンボル,数値などさまざまなものが使えます。
そして,キーがシンボルの場合に限り,ハッシュ式においてキーと値のペアを指定する方法に二通りの記法がある,ということなのです。
なお,「ハッシュ式」というのは,上の例にあるような,{ }
の中にキーと値のペアを列挙して Hash オブジェクトを表す式のことです。