Ruby元编程起步4
如果感谢大家能看到第四篇……
为了答谢各位新老客户,所以本店将赠送大家装X名字一枚:metaclass(我认为面试ruby的话能说出metaclass跟扁平作用域就能说明你对ruby有一定层次的理解了。)
不过首先呢,我们要知道什么是eigenclass。
本人的一贯工作作风就是脏活累活给别人干,所以我就不在这里介绍eigenclass,大家可以自行baidu或者参考http://17test.info/?p=152。
知道了eigenclass了,再告诉你下一个秘密:定义class跟定义方法一样,都有返回值!
turth = class A"The most xun national wind"endputs turth
Klass = Class.newKlass.class_eval dodefine_method :instance_method_for_demo doputs "This is a instance method for #{self}"endself.class.class_eval dodefine_method :class_method_for_demo doputs "This is a class method for #{self}"endendendKlass.new.instance_method_for_demoKlass.class_method_for_demoKlass = Class.newKlass.class_eval dodefine_method :instance_method_for_demo doputs "This is a instance method for #{self}"endmetaclass = (class << self; self; end)metaclass.class_eval dodefine_method :class_method_for_demo doputs "This is a class method for #{self}"endendendKlass.new.instance_method_for_demoKlass.class_method_for_demoArray.class_method_for_demoString.class_method_for_demo