Shorthand for: return if not nil



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

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

是否有return @var if @var的简写?如果是单行方法,我使用:

@var ||= [some more code]

可以用多行方法做类似的事情吗?

我用这个:

@var ||= begin
   # ...
end

some_method内部有必要这样做吗?

如果没有,我会考虑做

def some_method_wrapper
  @var || some_method
end

这样可以保持some_method的清洁

最新更新