首页 > 解决方案 > 如何使干净的 if-else + 返回值

问题描述

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

  def someopp(param)
    r_val = nil
    begin
      r_val  = do_something(param)
    rescue Some::Error => e
      r_val  = {} 
    end
    r_val 
  end

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

标签: rubycoding-style

解决方案


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

或者

def someopp(param)
  do_something(param) rescue {}
end

但不建议使用 inline-rescue!


推荐阅读