参考書でunless文について学んだため記事にしてみました。
認識違いがあった場合などは是非ご指摘下さい。
#unless文とは
if文は条件の結果が真だったときに処理を実行しますが、それとは反対に、偽だったときに処理を実行するunless文という処理構文があります。
ifについてはこちらにあります。
https://qiita.com/muffin-men/items/fd8637bb1b98cb369c5b
今回はunless文 / if文を比較してみたいとおもいます。
それでは下記のコードにてご説明します。
####unless文
age = 16
unless age >= 20
puts "未成年者にはお酒を提供できません"
end
####if文
age = 16
if age < 20
puts "未成年者にはお酒を提供できません"
end
unless文はifの条件を裏返して利用するものであり、unless文で表現できることはif文でも表現可能です。
同じことが書けるのならば、どっちを使ったら良いのか疑問を抱くはずです。
上記のコードではunlessのときは「20歳以上かどうか(もし違うなら)を意識することになるのに対して、ifのときは「20歳未満かどうか」を意識することになります。20歳以上かどうかという条件をほかでも多用している場合は、それをそのまま書けるunless文のが分かりやすいです。
#まとめ
基本的にはif文を使うのが分かりやすいですが、条件の内容として直感的に把握しやすい方を利用するためにはunlessを選びます。
#参考書
・ 現場で使える Ruby on rails 5 速習実践ガイド