Ich finde mich häufig Ruby-Code schreiben, wo ich auf das Vorhandensein eines Werts überprüfen und anschließend etwas mit diesem Wert tun, wenn es vorhanden ist. Z.B.Etwas tun, wenn Wert vorhanden ist
if some_object.some_attribute.present?
call_something(some_object.some_attribute)
end
denke ich, es wäre cool, wenn es als
geschrieben werden konntesome_object.some_attribute.presence { |val| call_something(val) }
=> the return value of call_something
Wer weiß, ob es eine solche Funktion in Ruby ist oder wenn Active?
Ich öffnete eine pull request für diese Funktion.
Wenn Sie gerade für einen Einzeiler suchen, könnten Sie einen Inline verwenden if-Anweisung: 'call_something (some_object.some_attribute) wenn some_object.some_attribute.present?' – Sculper
Dies ruft 'some_attribute' zweimal auf, was aus Gründen der Ausführlichkeit und der Performance nicht wünschenswert ist (wenn' some_attribute' IO aufgerufen hat) –
'attr = if some_object. some_attribute.present? call_something (attr) ende dies wird Attribut nur einmal aufrufen –