Max*_*ace 4 ruby performance idioms idiomatic
我在Ruby中编写了一些东西,给定foo方法调用的值输出,我想:
foo如果foo是truthyfoo是假的,请记录错误并返回默认值.最简单的实现方法可能是:
foo = procedure(input)
if foo
foo
else
log_error
default
end
Run Code Online (Sandbox Code Playgroud)
但这种感觉过于冗长,因为foo重复了三次,这种风格非常迫切.
写这个最干净,最惯用的方式是什么?
(表现很重要 - 我们假设foo在绝大多数情况下都是真实的.)
依靠Ruby的Perl传统:
foo = procedure(input) and return foo
log_error
default
Run Code Online (Sandbox Code Playgroud)