以下示例是否有更清晰的语法?显然,对于该示例来说,问题并不是太多,但是当方法调用和数组作为对象的一部分时,我理想地想要一个超级局部变量用于此对象,即“this”或其他东西。
obj? obj : ''
如果对象存在,则放置对象。否则什么都没有。
答案 0 :(得分:1)
通常的Ruby-ish方法是短路OR:
obj || ''
请注意,如果obj
可合法地false
,则无法正常运行;在这种情况下,你最好明确地对obj.nil?
进行测试。
如果您需要发送大型方法链并且任何结果可能是nil
,请查看andand gem:
obj.andand.somemethod.andand.anothermethod || ''
最后,如果您使用的是Rails,ActiveSupport会为您提供try
method:
obj.try(:somemethod).try(:anothermethod) || ''