相关疑难解决方法(0)

Ruby - 使用class_eval定义方法

我正在做SaaS Stanford课程,试图完成这项任务的第5部分

我很难掌握这个概念,这就是我试图做的事情:

class Class
  def attr_accessor_with_history(attr_name)
    attr_name = attr_name.to_s
    attr_reader attr_name
    attr_reader attr_name + '_history'
    class_eval %Q'{def #{attr_name}(a);#{attr_name}_history.push(a) ; end;}'
  end
end
Run Code Online (Sandbox Code Playgroud)

我可能会做各种各样的错误,阅读关于元编程的The Book of Ruby章节,我仍然没有得到它,有人能帮我理解这个吗?

ruby metaprogramming class-eval

22
推荐指数
2
解决办法
2万
查看次数

标签 统计

class-eval ×1

metaprogramming ×1

ruby ×1