シンボルとは何か 概論

Rubyにはシンボルというものがある :thorugh とか :conditions とか、コロンで始まる表記で、RailsAPIによく出てくるアレだ。

でも、シンボルって何だろう。この問いに答えられる人は少ないのではないか。シンボルリテラルの表記法は分かる。Symbolクラスのインスタンスであることも分かる。何だか、文字列に似ているのも知っている。で、それは何?

この記事シリーズは、シンボルとは何かという問いに私なりの回答を提示する。

視点

Rubyにおけるシンボルを、私は3つの視点から説明する。

  1. 意味論から言えば、「プログラムにおける名前」という概念に対応するオブジェクトである。

  2. 他のオブジェクトとの相互作用で言えば、「intern化された文字列」に近い

  3. 実装から言えば、Rubyの名前管理用ハッシュ表のエントリである。

シリーズ目次

  1. その1(前編) 文字列の同一性と同値性

  2. その1(後編) 文字列のintern

  3. 以下、続く。