この記事ではRubyのSymbolについての学習方法を解説していきます。
以前Rubyの基礎でStringの記事を記載しましたが、今回はSymbolについて簡単に説明します。
Symbolとは
Symbolはざっくり説明すると、ソースコード上では文字列のように見えますが、内部では整数として扱われ、Stringより高速で処理することができます。
Symbolの宣言
先頭にコロン「:」をつけることでSymbolを宣言することができます。
pry(main)> :name
=> :name
pry(main)> :name.class
=> Symbol
同じオブジェクトを使用する
以下のようにStringとの違いは同じシンボル名は同じオブジェクトを使用するので、メモリの使用率を抑えることができます。
pry(main)> str1 = 'str'
=> "str"
pry(main)> str2 = 'str'
=> "str"
pry(main)> str1.object_id
=> 70250801184180
pry(main)> str2.object_id
=> 70250801312580
pry(main)> sym1 = :str
=> :str
pry(main)> sym2 = :str
=> :str
pry(main)> sym1.object_id
=> 783708
pry(main)> sym2.object_id
=> 783708
ハッシュでよく使用される
以下のようにハッシュを宣言する際にキーの後ろにコロン「:」を記載するとSymbolになります。
pry(main)> { name: 'ワタベ', prefacture: '東京都'}
=> {:name=>"ワタベ", :prefacture=>"東京都"}
この他、メソッドの引数、RailsのリクエストパラメーターでよくSymbolがしようされます。
コメント