まとめ
result = hoge&.value || "default"
愚直に書く
if hoge== nil result = "default" else result = hoge.value end
nil? を使う
Object クラスにレシーバーが nil の場合に真偽値を返すメソッドがある。
if hoge.nil? result = "default" else result = hoge.value end
三項演算子を使う
単純な条件なら三項演算子で一行にまとめて書いてもよさそう。
result = hoge.nil? ? "default" : hoge.value
nil? を使わない
nil はそもそも if で false に判定されるのでなくてもよい。
result = hoge ? hoge.value : "default"
ぼっち演算子と or 演算子を使う
ぼっち演算子はレシーバーが nil のときはメソッドが呼ばれず nil を返し、 nil でないときはメソッドを呼び出してくれる。
result = hoge&.value || "default"
追記
xxx rescue nil も追記したい(僕も最近知った
— kaiba (@kaiba) 2023年12月26日
xxxで例外が起こった場合nilにする、です。