Rubyにはシンボルというものがある:thorughとか:conditionsとか、コロンで始まる表記で、RailsのAPIによく出てくるアレだ。
でも、シンボルって何だろう。この問いに答えられる人は少ないのではないか。シンボルリテラルの表記法は分かる。Symbolクラスのインスタンスであることも分かる。何だか、文字列に似ているのも知っている。で、それは何?
この記事シリーズは、シンボルとは何かという問いに私なりの回答を提示する。
視点
Rubyにおけるシンボルを、私は3つの視点から説明する。
- 意味論から言えば、「プログラムにおける名前」という概念に対応するオブジェクトである。
- 他のオブジェクトとの相互作用で言えば、「intern化された文字列」に近い
- 実装から言えば、Rubyの名前管理用ハッシュ表のエントリである。
シリーズ目次
- その1(前編) 文字列の同一性と同値性</a>
- その1(後編) 文字列のintern</a>
- 以下、続く。
コメント