と言う場合{ :bla => 1, :bloop => 2 }
、 は具体的に何をするのでしょ:
うか? どこかで、 は文字列に似ているが、どういうわけかシンボルであると読んだことがあります。
この概念がよく分からないのですが、誰か教えていただけませんか?
ベストアンサー1
:foo
は「foo」という名前のシンボルです。シンボルには、同じ名前の 2 つのシンボルは同一であるという明確な特徴があります。
"foo".equal? "foo" # false
:foo.equal? :foo # true
これにより、2 つのシンボルの比較が非常に高速になります (文字列のようにすべての文字を比較するのではなく、ポインタの比較のみが行われるため)。また、同じシンボルのコピーが無数に存在することもなくなります。
また、文字列とは異なり、シンボルは不変です。