シンボルと文字列の比較

RubyのシンボルはJavaのString#intern()と同じで、結局は文字列なんだと思ってました…。
違うんですねえ。シンボルはSymbolであってStringではないんですね。

http://idm.s9.xrea.com/ratio/2008/02/25/000755.html

僕はてっきり以下の結果は全部trueになるんだと思ってたのでショ〜ック。

irb(main):001:0> 'a' == :a.to_s
=> true
irb(main):002:0> 'a'.to_sym == :a
=> true
irb(main):003:0> 'a' == :a
=> false
irb(main):004:0> { 'a' => true }[:a]
=> nil
irb(main):005:0> { :a => true }['a']
=> nil