1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ハッシュの新記法のキーの仕様が2.2から大分変わっている

Last updated at Posted at 2016-10-31

Rubyの2から可能になった、ハッシュの新記法。社内では好評です。ですが、
私ははまりました。新記法ってのは

{:a => 1}

{a: 1}

と書けます。
しかし、Rubyの2.1までは

{'a': 1}

これができません。えええ!って思ってしまいましたが、できませんでした。
2.2以降はできます。シンボルってのは使える文字列に制約があります。
例えばドットなどは使えません。しかし、コーテーションで括ると使えます。
ただ、2.1以前は新記法のキーはコーテーションで括るのを許してくれません。

今でも2.0とか2.1とか使う機会があるのですが、キーがある程度自由なのは2.2以降なので、
ハマります。できるかぎりハッシュの新記法で書きたい場合は2.2以降を使いましょう。
そうしないと、

{'a.b': 1, c: 2}

を表現できずに

{:'a.b'=>1, c: 2}

みたいな羽目になります。

ちょっと戻って2.1とか2.0とか使ったときにハマらないようにしましょう
というか、進んでバージョンアップしましょう。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?