From: matthew@... Date: 2016-05-22T06:12:09+00:00 Subject: [ruby-core:75670] [Ruby trunk Bug#12412] Extend safe navigation operator Issue #12412 has been updated by Matthew Kerwin. Daniel Ferreira wrote: > I wonder if we couldn't extend the safe navigation operator to work with any object rather than just nil. Making it shorthand for `respond_to?` isn't an extension, it changes the operator. What would this do under your proposal? ~~~ruby nil&.nil? ~~~ Also your "would become" isn't quite the same if `bar.qux` returns `nil` or `false`. ---------------------------------------- Bug #12412: Extend safe navigation operator https://bugs.ruby-lang.org/issues/12412#change-58800 * Author: Daniel Ferreira * Status: Open * Priority: Normal * Assignee: * ruby -v: * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- 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: ~~~ ruby 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: ~~~ ruby class Foo def bar(baz) baz&.qux || 'whatever' end end ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: