【发布时间】:2014-11-19 23:12:07
【问题描述】:
我必须在Class 类中编写一个my_initialize 方法,以便它在这个庄园中工作,当在另一个类中使用时:
class Person
my_initialize :name, :surname
end
相当于:
class Person
def initialize(name, surname)
@name, @surname = name, surname
end
end
如果传递了错误数量的参数,它还必须引发ArgumentError。例如Person.new("Mickey") 无效。我知道我的代码应该类似于:
class Class
def my_initialize(*args)
args.each do |arg|
self.class_eval("?????")
end
end
end
我刚开始阅读元编程,但找不到任何对我的问题有用的东西。任何想法如何完成这项任务?
【问题讨论】:
-
继续阅读,直到您发现
define_method。 :)
标签: ruby class metaprogramming