小川と申します。
> 念のため、Rubyで
> !x = 123
> をやってみると、Rubyでもエラーにならず false になります。
> これはさすがにバグじゃなくて意図的な仕様だと思うのですが、
> 演算子優先度の例外を作ってまで、
> !(x = 123)
> -(x = 123)
> +(x = 123)
> と見做したいという理由があったのでしょうか?
古いissueに議論があるのを見つけました。
Bug #9251: ! operator has lower precedence than = in an assignment expression
https://bugs.ruby-lang.org/issues/9251
こうなっている理由はわかりませんが、今の動作で受け入れられているようですね。
--
小川建一
mailto:kenichi@ice.email.ne.jp
++