【发布时间】:2010-05-22 18:36:16
【问题描述】:
我想在 Ruby 中有一个 return_empty_set 类方法,类似于 attr_reader 方法。我建议的实现是
class Class
def return_empty_set *list
list.each do |x|
class_eval "def #{x}; Set.new; end"
end
end
end
和示例用法:
class Foo
return_empty_set :one
end
Foo.new.one # returns #<Set: {}>
但诉诸字符串似乎是一种 hack。有没有更干净或更好的方法来写这个,也许避免class_eval?或者这是最好的方法?
【问题讨论】:
标签: ruby metaprogramming