はじめに
Rubyのハッシュで出てくるコロン( : )が前にあったり後ろにあったりして初心者にはごちゃごちゃになる時があるので、まとめました。
ハッシュでの前置コロン、後置コロンまとめ
種類 | ハッシュの定義の仕方 | ハッシュの値を呼ぶ時 |
---|---|---|
普通のハッシュ | hash = {“key1” => value1, “key2” => value2} | hash[“key1”] |
前置コロンを使う | hash = {:key1 => value1, :key2 => value2} | hash[:key1] |
後置コロンを使う | hash = {key1: value1, key2: value2} | hash[:key1] |
普通のハッシュ
キー名を文字列で指定して、「=>」でつないでキーに対応する値を記載します。
ハッシュの値を呼ぶ時は、キー名の文字列を指定します。
前置コロン(シンボル)を使う
まず、コロンをキー名の前に書く前置コロンは、シンボルを表します。
シンボルとは、Rubyのオブジェクトのひとつの種類です。文字列の代わりに使うこともできますが、必ずしも文字列と同じ挙動をするわけではなく別物です。
ハッシュでは、キー名指定の部分をシンボルで置き換えることができます。「“key1”」の部分が「:key1」となります。文字列ではなくシンボルなので、クォーテーションはつけません。キー名に対応する値の記載方法は前項のものと同じで「=>」でつないで指定します。
ハッシュの値を呼ぶ時は、シンボルで指定します。
後置コロンを使う(シンボル指定で=>を省略)
コロンをキー名の後ろに書く後置コロンは、キー名をシンボルにして=>を省略できる書き方です。
「:key1 => 」という部分が、「key1: 」に置き換えられます。
ハッシュではこの書き方が一般的なようです。
この場合も、シンボルでキー名を指定していることには変わりないので、ハッシュの値を呼ぶ時はシンボルで指定します。
コメント