Ruby: Return 如果方法 returns 是一个非零值
Ruby: Return if method returns a non-nil value
在 Ruby 中有 better/cleaner 方法吗?
def my_method(x, y)
return error if (error = validate(x, y))
# do something else
end
我在其他地方调用了 #validate
,所以为了保持干爽,我有 return 错误消息。
另一种写法是:
def my_method(x, y)
unless validate(x, y)
# do something else
end
end
这将 return 验证它是否 return 的答案。
如果输入错误时validate
returns错误,否则nil
,那么你可以这样做:
def my_method(x, y)
validate(x, y) or # do something else
end
这个更明确、更易读的版本有什么问题?
def my_method(x, y)
error = validate(x, y)
if error
error
else
# do something else
end
end
IMO 编写尽可能短的代码没有任何好处。您应该始终以编写最易读和最易理解的代码为目标。
在 Ruby 中有 better/cleaner 方法吗?
def my_method(x, y)
return error if (error = validate(x, y))
# do something else
end
我在其他地方调用了 #validate
,所以为了保持干爽,我有 return 错误消息。
另一种写法是:
def my_method(x, y)
unless validate(x, y)
# do something else
end
end
这将 return 验证它是否 return 的答案。
如果输入错误时validate
returns错误,否则nil
,那么你可以这样做:
def my_method(x, y)
validate(x, y) or # do something else
end
这个更明确、更易读的版本有什么问题?
def my_method(x, y)
error = validate(x, y)
if error
error
else
# do something else
end
end
IMO 编写尽可能短的代码没有任何好处。您应该始终以编写最易读和最易理解的代码为目标。