From: Minero Aoki Date: 2001-03-02T21:19:53+09:00 Subject: [ruby-list:28434] Re: argument to instance_eval block あおきです。 In mail "[ruby-list:28398] Re: argument to instance_eval block" keiju@ishitsuka.com (石塚圭樹) wrote: > けいじゅ@日本ラショナルソフトウェアです. > そういえば, さすがに上記のカウントの中にいれませんでしたが, evalの結構多 > い使用パターンとして以下のがありました. > > eval "test_"+ARGV.shift > > やっぱ. eval系がすきなのかしらん(^^;;; (^^;; うーん、ぼくだったらこれはやっぱり __send__ になっちゃいます。 どうも素の eval が嫌いみたい。 じゃあ、ぼくの eval の用途はどんな感じなんだろう。 不定名の変数への代入 4 文字列から文字列を得る 5 (各種クオートを Ruby に処理させるため) ユーザ指定の文字列を実行 6 クラス名からクラスを得る 1 (const_get のほうがいいなあ) か。eval は偏りがないな。 > そんなことないでしょう. 何か実行したいだけなら klass.instance_evalをすれ > ばいいのであって, module_evalはメソッド定義のためにあると信じています. ですかねえ、やっぱり。 あっ、あとファイル名/行番号変えもかなり重要っす。 もうあれなしでは生きていけないー (でも undocumented。) # ちなみにぼくもカウントしてないのがあって、行番号変えるために # Racc が module_eval を出力してました。それを入れてしまうと # module_eval が 161 … ^^;;;;;;; ------------------------------------------------------------------- 青木峰郎