アフィリエイト広告を利用しています

広告

posted by fanblog

ruby シンボルとは。

ruby のシンボルってなんだろうと思ったので調べてみた。

シンボルとは?
PGの中で不変な変数となる。
通常のオブジェクトは、生成される度に別のものとして存在する。

コロン(:)を先頭につけると ruby は、シンボルとして振舞う。
:a

シンボルとオブジェクトを比較してみる。
# object
p "a".object_id
p "a".object_id
p "a".object_id
# symbol
p :a.object_id
p :a.object_id
p :a.object_id

実行結果。
337195050
337195030
337195010
105858
105858
105858

オブジェクトは、オブジェクトIDが変化しているが
シンボルは、オブジェクトIDが変わらないことがわかる。

シンボルを使うと無駄にオブジェクトが生成されない為、処理が速くなる。
そして、オブジェクトIDが変わらない為、ある値に対して可読性の高い記号というかラベルの役割が可能となる。
   
×

この広告は30日以上新しい記事の更新がないブログに表示されております。