【发布时间】:2013-01-20 15:35:23
【问题描述】:
我想写一个方法,它接受一个参数并创建另一个方法,用这个参数命名。这是我的代码
class Class
def createMethod(attr_name)
attr_name = attr_name.to_s
class_eval %Q{
def #{attr_name}
puts "bar"
end
}
end
end
p Class.new.createMethod("foo").respond_to?(:foo)
不幸的是,respond_to?(:foo) 的计算结果为 false。怎么了?
【问题讨论】:
标签: ruby methods metaprogramming class-eval