2010年06月28日
ruby シンボルとは。
ruby のシンボルってなんだろうと思ったので調べてみた。
シンボルとは?
コロン(:)を先頭につけると ruby は、シンボルとして振舞う。
シンボルとオブジェクトを比較してみる。
実行結果。
オブジェクトは、オブジェクトIDが変化しているが
シンボルは、オブジェクトIDが変わらないことがわかる。
シンボルを使うと無駄にオブジェクトが生成されない為、処理が速くなる。
そして、オブジェクトIDが変わらない為、ある値に対して可読性の高い記号というかラベルの役割が可能となる。
シンボルとは?
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
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
337195030
337195010
105858
105858
105858
オブジェクトは、オブジェクトIDが変化しているが
シンボルは、オブジェクトIDが変わらないことがわかる。
シンボルを使うと無駄にオブジェクトが生成されない為、処理が速くなる。
そして、オブジェクトIDが変わらない為、ある値に対して可読性の高い記号というかラベルの役割が可能となる。
【(カテゴリなし)の最新記事】
投稿者:tech|17:40