Actions
Bug #12412
closedExtend safe navigation operator
Bug #12412:
Extend safe navigation operator
Description
I wonder if we couldn't extend the safe navigation operator to work with any object rather than just nil.
I tend to still use this kind of code in some scenarios, specially when I work with objects with dynamic interfaces or arguments with different possible object types:
class Foo
def bar(baz)
if baz.respond_to?(:qux)
return baz.qux
end
'whatever'
end
end
What if we extend the safe navigation operator to work with any kind of object?
If it doesn't respond to the method it would return nil like this:
class Foo
def bar(baz)
baz&.qux || 'whatever'
end
end
In order to not break backwards compatibility we should keep the current behaviour as well so the rational would be:
nil&.any_method
# => nil
foo&.non_responding_method
# => nil
Actions