シンボルの宣言
:s = 's'
s = :s
# これは、シンボル同士の比較だから一致する。
# クォートで囲ってもシンボルは同一となる。
puts s == :"s" # => true
puts s == :s # => true
# これは、文字列との比較だから一致しない
puts s == "s" # => false
string = "hoge"
# 文字列をシンボルに変換するには、internかto_symを使う
puts :hoge == string # => false
puts :hoge == string.intern # => true
puts :hoge == string.to_sym # => true
シンボルを使ってリフレクション
array = Array.new
puts array # => []
# リフレクションでメソッドの存在チェック
puts array.respond_to?(:push) # => true
# リフレクションでメソッド呼び出し
array.send(:push, "hoge")
puts array # => [hoge]