【发布时间】:2015-07-11 06:45:29
【问题描述】:
在 Ruby 中是否有更好/更清洁的方法来做到这一点?
def my_method(x, y)
return error if (error = validate(x, y))
# do something else
end
我在其他地方打电话给#validate,所以为了保持干燥,我让它返回错误消息。
【问题讨论】:
-
validate(x, y)是否返回Boolean? -
通常错误(如异常)会停止进程。他们是您想要避免这种情况的特殊原因吗?例如,当您运行 my_method 时,您是否会在继续之前检查是否返回了错误对象?否则,您可以引发错误而不是返回错误
标签: ruby refactoring guard-clause