1

在 Ruby 中是否有更好/更清洁的方法来做到这一点?

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

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

4

3 回答 3

2

这个更明确、更易读的版本有什么问题?

def my_method(x, y)
  error = validate(x, y)

  if error
    error
  else
    # do something else
  end
end

IMO 编写尽可能短的代码没有任何好处。您应该始终致力于编写最具可读性和可理解性的代码。

于 2015-05-01T12:37:56.363 回答
1

如果validate在输入错误时返回错误,nil否则,您可以执行以下操作:

def my_method(x, y)
  validate(x, y) or # do something else
end
于 2015-05-01T12:35:47.847 回答
0

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

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

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

于 2015-05-01T12:28:50.017 回答