`begin` block vs括号:只是风格问题?

时间:2014-06-13 15:05:25

标签: ruby

考虑以下两个Ruby片段:

def foo
  @foo ||= begin
    get_the_foo
  end
end

VS

def foo
  @foo ||= (
    get_the_foo
   )
end

结果是一样的。就个人而言,我更喜欢第二种,因为begin让我期待异常处理。

这些除了风格之外还有什么不同吗?例如,性能,范围,记忆等?

我的猜测是begin更重'因为它可以做得更多。

1 个答案:

答案 0 :(得分:0)

虽然我不认为两种风格之间存在显着差异,但我认为真正的问题应该是"使用多行计算产生返回值是一个好主意内联表达?"。

Ruby的条件赋值快捷方式已经很难阅读了。我很肯定,如果您需要多个步骤来获取值,您应该将它们提取到方法中,然后只需调用@foo ||= method_to_get_the_foo