`Object#define_singleton_method(symbol,method)`如何在ruby中
发布时间:2020-12-17 01:50:22 所属栏目:百科 来源:网络整理
导读:从 Doc of define_singleton_method 我有两种语法来定义单例方法,如下所示: define_singleton_method(symbol) { block } - proc : 使用上面的语法,我尝试了下面的代码和我理解的语法: define_singleton_method :foo do |params = {}| paramsend#= #Proc:0x
从
Doc of define_singleton_method
我有两种语法来定义单例方法,如下所示:
使用上面的语法,我尝试了下面的代码和我理解的语法: define_singleton_method :foo do |params = {}| params end #=> #<Proc:0x20e6b48@(irb):1 (lambda)> foo #=> {} foo(bar: :baz) #=> {:bar=>:baz} foo(bar: :baz,rar: :gaz ) #=> {:bar=>:baz,:rar=>:gaz} 但需要有人的帮助,用以下语法找出每个例子.
根据doc – 方法参数可以是Proc,Method或UnboundMethod对象.我没有在那里得到任何例子. 谁能帮助我在这里得到一个反对斜体字的例子? 解决方法
Proc对象是使用lambda,proc,– >,Proc.new或&创建的.参数列表中的语法.可以使用方法方法获取Method对象,并且可以使用instance_method方法获取UnboundMethod.以下是每个例子:
p = Proc.new {|x| puts x} m = method(:puts) um = Object.instance_method(:puts) define_singleton_method(:my_puts1,p) define_singleton_method(:my_puts2,m) define_singleton_method(:my_puts3,um) my_puts1 42 my_puts2 42 my_puts3 42 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |