可以&阻止在ruby中可选吗?
发布时间:2020-12-17 03:56:30 所属栏目:百科 来源:网络整理
导读:这可能吗?例如,如果我有: module Sample def self.method_name(var,block) if var == 6 call_other_method(var,block) else call_other_method(var) end end def self.call_other_method(var,block) # do something with var and block,assuming block is
这可能吗?例如,如果我有:
module Sample def self.method_name(var,&block) if var == 6 call_other_method(var,&block) else call_other_method(var) end end def self.call_other_method(var,&block) # do something with var and block,assuming block is passed to us. end end 因此,在上面的示例中,如果调用Sample.method_name并将其传递给3和块,则不会使用该块,因为输入与条件不匹配.但这可能吗?你可以选择& block吗? 我做了一个假设,根据其他堆栈问题你可以将一个方法从一个方法传递到另一个方法,如上所示,如果这是错误的请填写我. 解决方法
当然.看看block_given?在ruby文档中.
http://ruby-doc.org/core-2.2.1/Kernel.html#method-i-block_given-3F module Sample def self.method_name(var,&block) puts "calling other method with var = #{var}" block.call if block_given? puts "finished other method with var = #{var}" end end 运行时输出为: calling other method with var = 6 this is my block finished other method with var = 6 calling other method with var = 3 finished other method with var = 3 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读