[Ruby] Re[2]: [Ruby] Re: [Ruby] определения переменной в C

Alexander Bokovoy a.bokovoy at sam-solutions.net
Tue Nov 5 17:54:57 MSK 2002


On Tue, Nov 05, 2002 at 02:31:11PM +0200, Eugene Scripnik wrote:
> AB> Это слишком много. Достаточно определять методы как singleton_method:
> Не вижу существенной разницы в объеме между
> VALUE cFreeCraft = rb_class_new(rb_cObject);
> VALUE vFreeCraft = rb_class_new_instance(0, 0, cFreeCraft);
> rb_define_method(cFreeCraft, "video", fc_video, 0);
> rb_define_variable("$FreeCraft", &vFreeCraft);
> и
> foo = rb_newobj();
> OBJSETUP(foo, rb_cObject, T_CLASS);
> rb_define_singleton_method(foo, "my_method", my_method, 0);
> rb_define_variable("$foo", &foo);
> 
> Проблема в общем-то не в этом, не совсем прозрачным будет хранение в
> объекте типа Class (класс - это класс) instance переменных. Да и
> объекты такого типа используются для инициализации объектов. Как на
> счет $foo.new? A $FreeCraft.new? Ну и соответственно $foo.class и
> $FreeCraft.class.
> Почему T_CLASS, а не T_MODULE? Раз уж singleton методы, то модуль
> для этих целей более пригоден.
> Хотя это дело религиозное :)
:) Собственно, имелось в виду T_OBJECT на самом деле.
А под "слишком много" подразумевалось создание дополнительного класса.
В частности, можно было бы и rb_class_new_instance(0,0, rb_cObject)
сделать и в ней уже singleton сделать. Потому как в данном случае,
насколько я понимаю, нужен именно один экземпляр объекта.
-- 
/ Alexander Bokovoy
---
Neckties strangle clear thinking.
		-- Lin Yutang



More information about the Ruby mailing list