🌊

[Feature #13820] 左辺が `nil` のときのみ右辺を評価する演算子を追加する提案

2024/09/11に公開
1

[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 などするときに exprfalse の場合は false で評価したい、みたいなところですかねー
    • || だと左辺ではなくて右辺が返ってくる
  • ただし Ruby の構文では ?? 自体は有効な構文ではあるんですよねえ
    • ?? => # "?" となる
  • 最近コメントされていたのでこのチケットに気づいたんですが Ruby 上で nilfalse を区別したいケースがどれだけあるのか次第なんですかねー
  • 個人的にめちゃくちゃほしいわけではないけどあれば普通に使いそう
GitHubで編集を提案

Discussion