tyoshikawa1106のブログ

- Force.com Developer Blog -

Rails:Railsコンソールで覚えるハッシュとシンボル

Railsチュートリアルの第四章ハッシュとシンボルについて勉強しました。


ハッシュは、本質的には配列と同じですが、インデックスとして整数値以外のものも使用できる点が配列と異なります。ハッシュのインデックス (キーと呼ぶのが普通です) は、通常何らかのオブジェクトです。

f:id:tyoshikawa1106:20150718165505p:plain

f:id:tyoshikawa1106:20150718165926p:plain


ハッシュは配列と似ていますが、1つの重要な違いとして、ハッシュでは要素の「並び順」が保証されないという点があります。


ハッシュの要素を1つずつ角括弧を使って定義するよりも、キーと値をハッシュロケットと呼ばれる=> によってリテラル表現するほうが簡単です。

f:id:tyoshikawa1106:20150718170122p:plain


ここではRubyにおける慣習として、ハッシュの最初と最後に空白を追加しています。この空白はあってもなくてもよく、コンソールでは無視されます。


ここまではハッシュのキーとして文字列を使用していましたが、Railsでは文字列よりもシンボルを使用する方が普通です。シンボルは文字列と似ていますが、クォートで囲む代わりにコロンが前に置かれている点が異なります。たとえば、:nameはシンボルです。

f:id:tyoshikawa1106:20150718170911p:plain


ハッシュのキーとしてシンボルを採用する場合、user のハッシュは以下のように定義できます。
f:id:tyoshikawa1106:20150718171118p:plain

f:id:tyoshikawa1106:20150718172639p:plain


上記処理は次のようにも記載することができます。
f:id:tyoshikawa1106:20150718172807p:plain


シンボルのコロンは前だけでなく後ろに付ける書き方もできるみたいです。また、ハッシュはネストして使う方法もあります。
f:id:tyoshikawa1106:20150718172952p:plain


ハッシュで利用する例としてinspectメソッドと組み合わせる方法があるみたいです。
f:id:tyoshikawa1106:20150718173216p:plain


inspectとputsを組み合わせたp関数も用意されています。
f:id:tyoshikawa1106:20150718173248p:plain