はじめに
三項演算子で変数を扱う機会があったので、記事にしました。
サンプルコードでは、admin権限の有無でメッセージ内容を変更させます。
三項演算子とは
三項演算子を使うことで、if文のコード量を減らすことができます。
if文
if user.admin?
"Hello"
else
"Hi!"
end
三項演算子
user.admin? ? "Hello" : "Hi!"
複雑すぎるif文は三項演算子に向いていません。かえって可読性が低くなります。
変数ver
一応、if文も記述しておきます。
if user.admin?
message = "Hello"
else
message = "Hi!"
end
最初に試した三項演算子。
user.admin? ? message = "Hello" : message = "Hi!"
変数の重複が気になるので以下のように修正しました。
message = user.admin? ? "Hello" : "Hi!"
あとがき
三項演算子に限った話ではありませんが、リファクタリングの目的は、便利メソッドを使うことではありません。可読性の高いコードを実現させることが目的です。便利メソッドを使うだけで満足するのは注意が必要です。