【发布时间】:2011-06-05 13:49:23
【问题描述】:
我经常遇到这样的情况,我想做一些条件逻辑,然后返回部分条件。如何在不重复真假表达式中的条件部分的情况下做到这一点?
例如:
ClassName.method.blank? ? false : ClassName.method
有什么办法可以避免重复ClassName.method?
这是一个真实的例子:
PROFESSIONAL_ROLES.key(self.professional_role).nil? ?
948460516 : PROFESSIONAL_ROLES.key(self.professional_role)
【问题讨论】:
-
DRY 是在重复代码块、长链方法序列或只是做一些重复可能会降低代码质量的事情时非常有意义的事情之一.我认为当你做一些简单的事情并且不得不跳过一个箍来成为 DRY-er 时,这是没有意义的。我们很容易被引诱去追逐 DRY 龙,而忘记了“足够好”。在您的示例中,如果您要循环数百万次,则添加一个临时变量或执行@sepp2k 所说的
||事情,否则不要太担心。
标签: ruby conditional ternary-operator