🌊
[Feature #13820] 左辺が `nil` のときのみ右辺を評価する演算子を追加する提案
[Feature #13820] Add a nil coalescing operator
- 左辺が
nilのときのみ右辺を評価する演算子を追加する提案 -
||とは違って『nilのみを対象とする』みたいなやつ-
||はnilだけではなくてfalseも条件になるがfalseは除く演算子を追加する提案
-
# これは || と同じ
a = 0 ?? 55 # = 0
a = nil ?? 55 # = 55
# これは右辺を返す
a = false ?? 55 # = false
- モチベーションとしては
a = flag ?? trueなどするときにexprがfalseの場合はfalseで評価したい、みたいなところですかねー-
||だと左辺ではなくて右辺が返ってくる
-
- ただし Ruby の構文では
??自体は有効な構文ではあるんですよねえ-
?? => # "?"となる
-
- 最近コメントされていたのでこのチケットに気づいたんですが Ruby 上で
nilとfalseを区別したいケースがどれだけあるのか次第なんですかねー- https://bugs.ruby-lang.org/issues/13820#note-15
- 実際に
&.はnilとfalseを明確に区別している
- 個人的にめちゃくちゃほしいわけではないけどあれば普通に使いそう
Discussion
これは、たまに欲しくなる機能ですね。