如何使 if-else + 返回值干净

use*_*920 1 ruby coding-style

在用 Ruby 编码时,我经常写这样的东西

  def someopp(param)
    r_val = nil
    begin
      r_val  = do_something(param)
    rescue Some::Error => e
      r_val  = {} 
    end
    r_val 
  end
Run Code Online (Sandbox Code Playgroud)

我不喜欢它的外观。声明没有真正做任何事情的返回变量,然后再次使用 var 名称的行以返回它。这很麻烦。我觉得,在 Ruby 中,必须有办法让它更干净、更漂亮。对这里的语法糖有什么建议吗?

spi*_* 王建 7

def someopp(param)
  do_something(param)
rescue Some::Error
  {} 
end

Run Code Online (Sandbox Code Playgroud)

或者

def someopp(param)
  do_something(param) rescue {}
end
Run Code Online (Sandbox Code Playgroud)

但不推荐使用 inline-rescue!