[ruby-core:95982] [Ruby master Feature#16370] Pattern matching with variable assignment (the priority of `in` operator)

From: matz@...
Date: 2019-11-27 13:55:06 UTC
List: ruby-core #95982
Issue #16370 has been updated by matz (Yukihiro Matsumoto).


We have discussed about in-line pattern matching and made a decision that it should cause an exception instead of returning false. So this issue will disappear.

We might need to talk about the precedence for e.g. `a = n in 99 rescue nil`.

Matz.


----------------------------------------
Feature #16370: Pattern matching with variable assignment (the priority of `in` operator)
https://bugs.ruby-lang.org/issues/16370#change-82815

* Author: jnchito (Junichi Ito)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
I wrote this code:

``` ruby
n = 0
ret = n in 99
p ret
```

I expected `ret` was `false` but was `0` (truthy value).

I had to write like this:

```ruby
n = 0
ret = (n in 99)
p ret #=> false
```

However, I would like to write `ret = n in 99` because it is more natural for me, and I am afraid many people might mistake like me. Could you reconsider the priority of `in` operator?




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

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

In This Thread

Prev Next