0

我经常有以下性质的代码

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

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

... pattern repeated several times

以此类推。我想知道在 ruby​​ 中是否有另一种方法将 return -1 if ret == 1 包裹在函数调用周围,这样如果函数返回 -1 则代码返回 -1 否则继续

4

2 回答 2

0

可能有点干?就像是

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 回答