Ruby:如果方法返回非零值,则返回

时间:2015-05-01 12:25:12

标签: ruby refactoring guard-clause

在Ruby中有更好/更清晰的方法吗?

def my_method(x, y)
  return error if (error = validate(x, y))
  # do something else
end

我在其他地方打电话给#validate,所以为了保持干燥,我让它返回错误信息。

1 个答案:

答案 0 :(得分:0)

编写相同内容的另一种方法是:

 def my_method(x, y)
    unless validate(x, y)
        # do something else
    end
  end

这将返回验证是否返回任何内容的答案。