使用define_method
来源:互联网 发布:虚拟淘宝店怎么开 编辑:程序博客网 时间:2024/06/07 05:08
define_method用于将实例方法动态添加到类或对象中,它接受一个符号(用做方法名)和一个代码块(用做方法体)作为参数,实际上这个代码块是通过instance_eval来执行的,因为define_method是private的。所以:
- define_method(:activity) { puts "Playing!" }
这句话是错误的,应该这样:
- Object.class_eval { define_method(:activity) { puts "Playing!" } }
给类动态添加方法:
- 在类中添加方法,则不用考虑define_method 是私有的问题
- class MyClass
- define_method(:mymeth) { puts "This is my method." }
- end
- 在类级给类添加方法:
- class MyClass
- def self.new_method(name,&block)
- define_method(name){block}
- puts block.inspect
- end
- end
- MyClass.new_method(:show) { puts "show" }
- c = MyClass.new
- c.show
- 在实例级给类添加方法:
- class MyClass
- def new_method(name,&block)
- self.class.send(:define_method,name,block)
- end
- end
- x = MyClass.new
- x.new_method(:show) { puts "show" }
- x.show
- 使用define_method
- [Ruby] 中define_method 的使用
- 善用 define_method
- ruby define_method
- 善用 define_method
- define_method跟def
- instance_eval,class_eval,def以及define_method
- Ruby define_method def 的区别
- Ruby China中method_missing和define_method剖析
- Ruby meta programming 2(define_method/attr_accessor)
- Ruby China中method_missing和define_method剖析
- 使用
- 使用
- 使用
- 使用
- 使用
- 使用
- 使用++,--
- 使用ODBC来完成多平台数据库操作
- miranda插件开发思想
- 中国象棋纯CSS版
- 儒豹牛年元月手机搜索关键词
- Template Method模式
- 使用define_method
- Redhat Linux9 DHCP服务的安装及配置
- 用vc实现对qq发送按钮消息的截获
- ajax文件上传核心代码
- DES加密解密
- 归并排序
- 分析mirand事件
- java 数据结构 遍历链表程序
- DotNetNuke