简写:如果不是零则返回

时间:2014-05-12 07:43:41

标签: ruby

我使用变量缓存来减少执行时间,如下所示:

def some_method
  return @var if @var
  [some other code that gets executed only once]
end

return @var if @var有简写吗?如果我使用单行方法:

@var ||= [some more code]

使用多线方法可以做类似(简短)的事情吗?

2 个答案:

答案 0 :(得分:8)

我用这个:

@var ||= begin
   # ...
end

答案 1 :(得分:0)

是否有必要在some_method内进行?

如果没有,我会考虑做

def some_method_wrapper
  @var || some_method
end

这样你可以保持some_method清洁。