1. 首页
  2. 编程语言
  3. 其他
  4. Ruby元编程技术详解(Ruby Metaprogramming techniques)

Ruby元编程技术详解(Ruby Metaprogramming techniques)

上传者: 2021-06-26 01:21:55上传 PDF文件 122.23 KB 热度 12次

我最近考虑了很多元编程的问题,并希望看到更多这方面技术的例子和讲解。无论好坏,元编程已经进入Ruby社区,并成为完成各种任务和简化代码的标准方式。以定义一个ActiveRecord模型对象为例:   在这个例子中,令人感兴趣的是set_table_name的使用。通过使用单例类我们达到了这个目的。  Ruby允许你动态创建和修改class和module。特定情况下会很有用。标准的面向对象方法是继承并重载,再调用父类方法。  module_eval会在调用的module的上下文中执行字符串或block。  module_eval几乎总是适用;要像对待瘟疫一样避免使用eval。这会严重破坏封装,然而有时候确实非常顺手。这时候要用kernel方法binding来获得所绑定的对象。我并不声称自己是Ruby或者元编程方面的专家,这只是我对这个问题的一些想法。

用户评论