In Groovy, there is a nice syntax for working with null values.
For example, I can do an if statement:
if (obj1?.obj2?.value) { }
This will not throw a NullPointerException even if obj1 is null (it will evaluate to false).
This is something that's very convenient, so wondering if there is a Ruby equivalent I missed.
In a rails app there is Object#try
So you can do
obj1.try(:obj2).try(:value)
or with a block (as said on comments bellow)
obj.try {|obj| obj.value}
UPDATE
In ruby 2.3 there is operator for this:
obj&.value&.foo
Which is the same as obj && obj.value && obj.value.foo
This has been added to Ruby 2.3.
The syntax is obj1&.meth1&.meth2
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With