我正在用 Ruby 编写一些代码,给定一个方法调用输出的值 foo
,我想:
- 如果
foo
为真则返回foo
- 如果
foo
为假,则记录错误并返回默认值。
最简单的实现方式可能是:
foo = procedure(input)
if foo
foo
else
log_error
default
end
但这感觉过于冗长,因为 foo
重复了 3 次,而且这种风格非常命令式。
什么是最简洁、最惯用的写法?
(性能很重要——让我们假设 foo
在绝大多数情况下都是真实的。)
最佳答案
继承了 Ruby 的 Perl 传统:
foo = procedure(input) and return foo
log_error
default
关于Ruby - 如果为真则返回值或执行任意代码的最简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33369890/