我有一个臭方法,如:红宝石“回报,除非无”成语
def search_record(*args)
record = expensive_operation_1(foo)
return record unless record.nil?
record = expensive_operation_2(foo, bar)
return record unless record.nil?
record = expensive_operation_3(baz)
return record unless record.nil?
record = expensive_operation_4(foo, baz)
return record unless record.nil?
end
是否有“呼叫,除非零返回结果”良好的红宝石成语?
或者我应该只写一个return_unless_nil(&blk)
方法?
(请注意,ARG游戏为每个调用不同的,所以我不能只是简单地在它们之间迭代)
可以记录为'false',或者绝对是真实记录还是零? – 2011-06-15 06:07:28
“或者我应该写一个'return_unless_nil(&blk)'方法?”哪个会从调用它的方法返回?我不认为这是可能的。 – 2011-06-15 06:10:35
我有约10分钟的时间在学习红宝石,但我很好奇你会怎么写一个方法来为调用者返回一个值?至于一个潜在的答案,我觉得这是一个真正的答案,因为我的红宝石曝光非常有限......你可以在红宝石中使用类似的东西吗? 'return(record = expensive_op(foo))除非record.nil?'不知道这对你是否有点臭? – 2011-06-15 06:13:09