4

calculate(data)2 つの値を返すメソッドがあります。1 つはグレード ( Float) で、もう 1 つは詳細(Hashです)。次の 2 つのオプションを比較すると、好ましい方法はありますか?

def calculate(data)
  ...
  [grade, details]
end

grade, details = calculate(data)

対。

def calculate(data)
  ...
  Result.new(grade, details)
end

result = calculate(data)
grade = result.grade
details = result.details

Rubyでより慣用的なものは何ですか?

4

3 に答える 3

4

ライブラリの内部で使用することを目的としたメソッドの場合、最初のオプションはより効率的であり、適切な選択です。ライブラリのユーザーが使用することを意図したメソッドの場合、2 番目のオプションに沿ったものがより望ましいインターフェイスを備えているため、使用する必要があります。

于 2013-08-22T18:29:27.023 に答える