干掉Ruby三元组

前端之家收集整理的这篇文章主要介绍了干掉Ruby三元组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我经常遇到一种情况,我想做一些条件逻辑,然后返回一部分条件.如何在不重复真或假表达式中的条件部分的情况下执行此操作?

例如:

ClassName.method.blank? ? false : ClassName.method

有没有办法避免重复ClassName.method?

这是一个现实世界的例子:

PROFESSIONAL_ROLES.key(self.professional_role).nil? ? 
    948460516 : PROFESSIONAL_ROLES.key(self.professional_role)

解决方法

假设你可以像对待nil一样对待错误,你使用||:
PROFESSIONAL_ROLES.key(self.professional_role) || 948460516

如果key返回nil或false,则返回948460516,否则返回key的返回值.

请注意,如果key返回nil或false,则仅返回948460516,而不是返回空数组或字符串.既然你用的是nil?在你的第二个例子中,我认为没关系.但你用空了吗?在第一个例子中(并且空白?对于空数组和字符串返回true),所以我不确定.

猜你在找的Ruby相关文章