シンボルとは
Symbol とは、Ruby が内部でメソッド名などの識別に使っている数値で、任意の文字列に対して異なった値が割り当てらる。
なるほど、よく分かりませんね。
つまり、文字列だけど数値。みたいなものです。ハッシュのキーや文字列自体がデータでは無い物に使うことが吉です。
前コロンと後コロンの違い
シンボルとは主に文字列にコロン記号「:」を前置して定義したものです。
それにより、文字列を””で囲む必要がなくなります。
コロン記号「:」が、文字列記号「””」の代わりに、「これはシンボルだよ」とRubyに知らせています。
上記のように、コロン記号「:」を文字列に前置するとシンボルになります。
たとえば、ハッシュのキーとしてシンボルを使う際や、キーワード引数を使う際に、コロン記号「:」を後置します。
シンボルはオブジェクトの一つ
メソッドなどの名前を識別するためのラベルをオブジェクト化
samurai /*文字列
:samurai /*シンボル
ハッシュのキーとして利用する
よく使われるのが、ハッシュのキーだと思います。
hash_symbol = { tsuma: "sazae", otto: "masuo", kodomo: "tarao" }
取り出しは
puts hash_string[:tsuma] # "sazae" と表示
puts hash_string[:otto] # "masuo" と表示
puts hash_string[:kodomo] # "tarao" と表示
なり、キーをシンボルで定義しています。
ハッシュはデータを持たない
最初に記述した通り、ハッシュは「文字列だけど数値。」なのでデータを持ちません。
そのため、文字列そのもののデータを必要としない場合にシンボルが使われています。
シンボルのメリット
シンボルを使うことでコードが短くなり可読性が上がったり、処理が早くなったり、メモリ消費が少なくなったりと、いいことばかりらしいので、一緒に勉強しましょう。