「Unityで書く C# if文省略形シリーズ」、最終回となる第三弾です。
今回はちょっと地味だけど、知ってると「おっ」と言わせられる、条件付き代入演算子たちをご紹介します。
テーマは ||= と &&=。
用途はシンプル、「特定の条件を満たすときだけ代入したい」。
ただそれだけ。でも、それをスマートに書けるなら、書いておきたい。
そんなあなたに贈ります。
||=:左辺がfalseやnullなら代入したいとき
まず登場するのは ||=。
読み方は「オア・イコール」。ちょっと強そうな名前ですが、やってることは地味で堅実です。
🗂️普通バージョン
if (!isInitialized)
{
    isInitialized = true;
}まだ初期化されてなかったら、初期化する。
プログラミングの現場では親の顔より見た光景です。
✂️ ||=で省略したバージョン
isInitialized ||= true;「false だったら true 入れといて」というワンライナー。
ちょっとだけカッコつけてる感がありますが、ちゃんと意味は通じます。
ちなみに null にも反応するので、意外と使いどころあります。
&&=:左辺がtrueなら代入したいとき
お次は &&=。
こちらは「アンド・イコール」。演算子界の真面目枠です。
「条件が true のときだけ代入したい」っていう、やや控えめな気持ちをきれいに表現してくれます。
🗂️ 普通バージョン
if (isYaruki)
{
    isVisible = true;
}やる気があるなら、見えるようにする。
何だか人間関係っぽいですね。
✂️ &&=で省略したバージョン
isYaruki &&= isVisible;「やる気あるなら、可視状態を更新してね」的なコード例。
短いですが、意味が通じるなら十分アリです。
まとめ
| 処理内容 | 普通の書き方 | 省略形 | 
|---|---|---|
| false/null なら代入 | if (!x) x = ... | x ||= ... | 
| true なら代入 | if (x) x = ... | x &&= ... | 
読みやすさや意図の伝わりやすさが大事なので、無理に使う必要はありません。
でも、「あ、この場面は短くできるな」という気づきがあれば、使いこなしレベルが一段上がった証拠です。
次回予告:Switchも、もっと優雅に。
if文省略編は今回で終了となりますが、次回は if からちょっと離れて、switch式 や パターンマッチング を使って分岐処理をスッキリ書く方法を紹介予定です。
ただの分岐じゃない、スマートな分岐へ。スマ分。
それではまた次回、分岐の世界でお会いしましょう。
 
  
  
  
  

