2009年05月08日 rubyのsymbol
_ シンボルクラス
ある文字列で指定されたメソッドを呼び出すときに、これまではevalを使って、eval('"test".%s'%["size"])などとしていた。evalはバグの原因になりやすいので、あまり使いたくはないのだが、これ以外の方法が分からなかったので、仕方なくそうしていた。 しかし、symbolというのを使うと、次のようにもっとスマートにできるようだ。
"test".send("size".to_sym) "test".send(:size)文字列で管理していたものを、symbolで管理して、必要に応じて文字列に変換するようにすれば良いように思われる。 1.8.7では動いているが、いつからあったのだろう。クラスを定義していて、インスタンス変数を外部からアクセスするために、
attr_accessor :nameなどと書いているときに、コロンはなんだろうと思ってはいたが、実はこれはシンボルを表すものだったのか。