0

私はしばしば次の性質のコードを持っています

ret = function_call( arguments )
return -1  if ret == -1

ret = another_function_call( arguments2 )
return -1 if ret == -1

... pattern repeated several times

などなど。関数が-1を返すか、そうでなければ続行する場合、コードが-1を返すように、return -1 if ret == 1を関数呼び出しの周りにラップする別の方法がRubyにあるかどうか疑問に思っていました

4

2 に答える 2

0

少しDRYかな?何かのようなもの

def call_func(_method, arguments)
  raise "your exception" if send(_method, arguments) == -1
end

call_func(:function_call, arguments)
call_func(:another_function_call, arguments2)
于 2013-06-06T14:12:40.577 に答える
0
return_minus_one_on_one = Proc.new do |method_name, arguments|
  return -1 if send(method_name, arguments) == 1
end

return_minus_one_on_one.call("function_call", arguments)
return_minus_one_on_one.call("function_call2", arguments)
于 2013-06-06T14:23:53.330 に答える