[ruby-core:96477] [Ruby master Feature#16451] Special ternary operator for methods ending in `?`

[email protected] Wed, 25 Dec 2019 22:26:26 +0000 (UTC)
Newsgroups gmane.comp.lang.ruby.core
Message-ID <redmine.journal-83405.20191225222626.1d362fcb51964e44@ruby-lang.org>
Issue #16451 has been updated by myxoh (Nicolas Klein).


sawa (Tsuyoshi Sawada) wrote:
> The current ternary operator does not work that way. It works like this:
> 
> ```ruby
> question_method? ? 'was true' : 'was false' # => 'was false'
> ```

You are right, I've corrected the example

----------------------------------------
Feature #16451: Special ternary operator for methods ending in `?`
https://bugs.ruby-lang.org/issues/16451#change-83405

* Author: myxoh (Nicolas Klein)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
When a method ends in `?`, we should be able to skip the `?` in the ternary operator. For example, we should be able to do:

```ruby
question_method? true_statement : false_statement
```

This shouldn't interfere with implementations, as it currently fails to parse. Below are examples:

```ruby
def normal_method; true end
def question_method?; false end

question_method? ? 'was true' : 'was false' # => 'was false'
question_method?   'was true' : 'was false' # => 'was false'
normal_method ?    'was true' : 'was false' # => 'was true'
```



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>