本文简要介绍ruby语言中 Module.define_method
的用法。
用法
define_method(symbol, method) → symbol
define_method(symbol) { block } → symbol
在接收器中定义一个实例方法。 method
参数可以是 Proc
、 Method
或 UnboundMethod
对象。如果指定了块,则将其用作方法体。如果块或 method
参数有参数,它们将用作方法参数。使用 instance_eval
评估此块。
class A
def fred
puts "In Fred"
end
def create_method(name, &block)
self.class.define_method(name, &block)
end
define_method(:wilma) { puts "Charge it!" }
define_method(:flint) {|name| puts "I'm #{name}!"}
end
class B < A
define_method(:barney, instance_method(:fred))
end
a = B.new
a.barney
a.wilma
a.flint('Dino')
a.create_method(:betty) { p self }
a.betty
产生:
In Fred Charge it! I'm Dino! #<B:0x401b39e8>
相关用法
- Ruby Module.deprecate_constant用法及代码示例
- Ruby Module.attr_accessor用法及代码示例
- Ruby Module.method_removed用法及代码示例
- Ruby Module.private用法及代码示例
- Ruby Module.instance_method用法及代码示例
- Ruby Module.class_variables用法及代码示例
- Ruby Module.included_modules用法及代码示例
- Ruby Module.singleton_class?用法及代码示例
- Ruby Module.module_exec用法及代码示例
- Ruby Module.included用法及代码示例
- Ruby Module.include?用法及代码示例
- Ruby Module.ruby2_keywords用法及代码示例
- Ruby Module.module_eval用法及代码示例
- Ruby Module.extend_object用法及代码示例
- Ruby Module.class_exec用法及代码示例
- Ruby Module.autoload用法及代码示例
- Ruby Module.ancestors用法及代码示例
- Ruby Module.class_variable_get用法及代码示例
- Ruby Module.class_variable_defined?用法及代码示例
- Ruby Module.method_defined?用法及代码示例
- Ruby Module.new用法及代码示例
- Ruby Module.obj ==用法及代码示例
- Ruby Module.const_missing用法及代码示例
- Ruby Module.instance_methods用法及代码示例
- Ruby Module.autoload?用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Module.define_method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。