[ruby-core:75667] [Ruby trunk Feature#12263] Feature request: &&. operator (shorthand for foo && foo.method)

From: danieldasilvaferreira@...
Date: 2016-05-22 05:59:35 UTC
List: ruby-core #75667
Issue #12263 has been updated by Daniel Ferreira.


By implementing https://bugs.ruby-lang.org/issues/12412

We would get the desired behaviour:

~~~ ruby
false&.class       # => FalseClass
false&.inexisting  # => nil
~~~

For me the situation:

~~~ ruby
false&.class
~~~

it is a particular situation that can be handle using extra logic.
I don't think there are enough case situations to add a new operator to the language.

And by extending the safe navigation operator we will be making use of an already existent language feature.

----------------------------------------
Feature #12263: Feature request: &&. operator (shorthand for foo && foo.method)
https://bugs.ruby-lang.org/issues/12263#change-58797

* 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: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next