From: danieldasilvaferreira@... Date: 2016-05-17T10:25:59+00:00 Subject: [ruby-core:75560] [Ruby trunk Feature#12263] Feature request: &&. operator (shorthand for foo && foo.method) Issue #12263 has been updated by Daniel Ferreira. Hi Matz, 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 ~~~ Maybe the proposed `&&.` operator would be a good case scenario for this situations acting like `Hash#fetch` this way: ~~~ ruby class Foo def bar(baz) baz&&.(:qux, 'whatever') end end ~~~ ---------------------------------------- Feature #12263: Feature request: &&. operator (shorthand for foo && foo.method) https://bugs.ruby-lang.org/issues/12263#change-58694 * Author: Johnny Shields * Status: Feedback * Priority: Normal * Assignee: ---------------------------------------- Ruby 2.3 introduced the `&.` safe-navigation operator. I'd like to propose a `&&.` operator which would be shorthand for: ~~~ruby foo && foo.method ~~~ Unlike `&.`, this does not continue the chain if the variable evaluates to `false`. This would give the following result: ~~~ruby false&.class # => FalseClass false&&.class # => false false&.inexisting # => raises NoMethodError false&&.inexisting # => false ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: