Rubyのシンボルを学ぶ
シンボル
Symbolクラス
ソース上では文字列のように見え、内部では整数として扱われる、両者を仲立ちするような存在です。
シンボルと文字列は一対一に対応します。また、文字列と違い、immutable (変更不可)であり、同値ならば必ず同一です。
用途
ハッシュのキー { :key => "value" }
アクセサの引数で渡すインスタンス変数名 attr_reader :name
メソッド引数で渡すメソッド名 __send__ :to_s
C の enum 的な使用 (値そのものは無視してよい場合)
特徴、メリット
同じ内容のシンボルは同じオブジェクトID (メモリを無駄遣いしない)
文字列よりも高速に値の比較ができる
Rubyの%記法でシンボルを生成することもできる
%s!STRING!
シンボルと文字列の関係
to_s/id2name、to_sym/intern で変換
respond_to? メソッドなどは、引数として文字列とシンボルどちらを渡しても同じ
include? メソッドなどは、引数として文字列は渡せるがシンボルは渡せない
関連URL
enum:列挙型
Rubyのハッシュを学ぶ
#プロを目指す人のためのRuby入門
#Rubyを学ぶ