ruby-on-rails – 在Ruby中使用什么是|| = begin … end block?

这两个代码片段有什么区别:
def config
    @config ||= begin
      if config_exists?  
        @config = return some value
      else
        {}
      end
    end
  end

def config
    @config ||= method
  end

  def method
    if config_exists?
      return some value
    else
      {}
    end
  end

我对“开始…结束”块感到困惑.它对输出有什么影响吗?如果没有,那么在这里使用begin … end块是什么?

解决方法

首先,您需要知道定义的方法本身包含begin … end块的功能.

在异常处理的上下文中,def method_name … end在功能上等同于begin … end.例如,两者都可以包括救援声明.

您共享的两个代码块实际上是相同的,并且在一个代码中没有任何好处……除非您的方法在多个地方需要.在这种情况下,通过将逻辑放入单个方法并从多个其他位置调用它来干掉代码.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...