樽石です。 At Wed, 23 Sep 1998 23:36:54 +0900, Keiju ISHITSUKA <keiju / Rational.Com> wrote: > >clazz = eval("NewClass") > >obj = clazz.new > > > >一行だと > > > >obj = eval("NewClass").new > > > >とかはどうでしょう? > > 何かちょっと違うみたいですね. 上のやり方でやりたいことはできましたが… > clazz = eval("class NewClass; end") > obj = clazz.new > > ですね. > > あと, > > clazz = Class.new > obj = clazz.new > > でも. OKです. ただ. これだと名無しのクラスになっちゃいます. Rubyの場合 > 名前無しのクラスでも問題ないと思いますが, どうしても名前を付けたければ... > > Rubyの場合クラスの名前 == クラス定数名 なので適当なクラス定数に代入す > ることによってクラス名をつけることができます. > > NewClass = Class.new > obj = class.new > > ただ, これだと文字列でクラス名を設定したことになりませんので: > > Object.const_set("NewClass", Class.new) > obj = NewClass.new > > って感じかな... うーん、質問があいまいすぎたかもしれません。 #そのためにJavaで記述したけど…rubyMLにJavaはだめ? ようは動的にクラス型を決めたかったのです。 上の方法だと結局クラス名が静的に決まってしまうので うまくいかない気がします。 ただ、クラスの名前 == クラス定数名は参考になりました。 ありがとうございます。 ---- Masato Taruishi <taruis-m / jed.uec.ac.jp> | University of Electro Comunications <taru / debian.or.jp> | Department of Computer Science <taru / sunicom.co.jp> | Junior http://www.sunicom.co.jp/~taruisma/ | Chofu city Tokyo, JAPAN Key fingerprint = 49 46 74 E1 8D D1 EB 56 8D CA 2A 20 14 9E A9 25