【发布时间】:2015-10-27 13:53:19
【问题描述】:
我正在用 Ruby 编写一些代码,在给定方法调用的输出值 foo 时,我想:
- 如果
foo为真,则返回foo - 如果
foo为假,则记录错误并返回默认值。
实现这一点的最简单天真的方法可能是:
foo = procedure(input)
if foo
foo
else
log_error
default
end
但这感觉过于冗长,因为foo重复了三遍,而且这种风格非常必要。
最干净、最惯用的写法是什么?
(性能很重要——让我们假设foo 在绝大多数情况下都是真实的。)
【问题讨论】:
标签: ruby performance idioms