空またはnil値の文字列のテスト [重複] 質問する

空またはnil値の文字列のテスト [重複] 質問する

Ruby で条件付きで変数を設定しようとしています。変数が nil または空 (長さ 0 の文字列) の場合に設定する必要があります。次の方法を思いつきました:

variable = id if variable.nil? || (!variable.nil? && variable.empty?)

動作はしますが、あまり Ruby らしくない気がします。上記をより簡潔に表現する方法はありますか?

ベストアンサー1

2番目の節はチェックを必要としません!variable.nil?。評価がそのポイントに到達した場合、variable.nil偽であることが保証されます(短絡)。

これで十分なはずです:

variable = id if variable.nil? || variable.empty?

Ruby on Railsを使っている場合は、Object.blank?まさにこの問題を解決します:

オブジェクトが false、空、または空白文字列の場合、そのオブジェクトは空白になります。たとえば、、、、、""はすべて空白です。" "nil[]{}

おすすめ記事