1

Rubyでこれを行うためのより良い/よりクリーンな方法はありますか?

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

私は#validate別の場所で電話をかけているので、物事を DRY に保つために、エラー メッセージを返すようにしています。

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 に答える
0

同じことを別の方法で書くと、次のようになります。

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

これは、何かを返すかどうかを検証するための回答を返します。

于 2015-05-01T12:28:50.017 に答える