Ruby シンボルの簡単な使い方

Rubyで、シンボルの簡単な使い方を記述してます。rubyのバージョンは2.7.2を使用してます。
環境
- OS windows10 pro 64bit
- ruby 2.7.2p137
シンボル使い方
シンボル名は、名前の前にコロン(:)を記述することで Symbol型を定義できます。
str = "mebee"
sym = :mebee
p str.class
# String
p sym.class
# Symbol
例えば、文字列を定義した場合は、異なるオブジェクトとなりますが、
str1 = "mebee"
str2 = "mebee"
# 同じオブジェクトかどうか
p str1.equal? str2
# false
# オブジェクトIDを確認
p str1.object_id
# 60
p str2.object_id
# 80
シンボルの場合は、同じオブジェクトとなります。
sym1 = :mebee
sym2 = :mebee
# 同じオブジェクトかどうか
p sym1.equal? sym2
# true
# オブジェクトIDを確認
p sym1.object_id
# 1068828
p sym2.object_id
# 1068828
ハッシュ作成
シンボルは、よく、ただのデータの名前であるハッシュのキーとして使用されます。
h1 = { "name" => "honda", "age" => 10 }
h2 = { :name => "honda", :age => 10 }
p h1
# {"name"=>"honda", "age"=>10}
p h1["name"]
# "honda"
p h2
# {:name==>"honda", :age=>10}
p h2[:name]
# "honda"
シンボルをハッシュに使用する場合は、以下のように記述することも可能です。
h3 = { name: "honda", age: 10 }
p h3
# {:name=>"honda", :age=>10}
p h3[:name]
# "honda"
シンボルで、キー名を定義すると、文字列で定義する場合に比べ、パフォーマンスが上がります。
【参考】 上記のコードを、それぞれ1億回実行した結果
user system total real
#string 12.704000 0.000000 12.704000 ( 12.706575)
#symbol 10.421000 0.000000 10.421000 ( 10.435728)
また、シンボルをハッシュのキーに使用するとユニークキーなるためコードの安全性を保てます。
更に、見やすくなり可読性もあがります。
p h1
# {"name"=>"honda", "age"=>10}
p h2
# {:name==>"honda", :age=>10}
-
前の記事
Nuxt.js ライブラリ「vue-scratchable」を使用してスクラッチを実装する 2020.12.28
-
次の記事
windows ファイルのタイムスタンプを変更する 2020.12.28
コメントを書く