はじめに
どうもこんにちはもきお(@mokio_50)です。今回は実務で「おっ、これいいじゃん」と思ったちょっとしたリファクタリングになります。
例として今回は東海オンエアのメンバーからメンバーカラーを返すと言うのを例にしました。
if文をcase文に
一番条件分岐でオーソドックスなif文で書くと
member = "ゆめまる"
if member == "てつや"
"オレンジ"
elsif member == "りょう"
"ブルー"
elsif member == "しばゆー"
"イエロー"
elsif member == "ゆめまる"
"ピンク"
elsif member == "虫眼鏡"
"ブラウン"
elsif member == "としみつ"
"グリーン"
end
今回はゆめまる
なのでピンク
が表示されるでしょう。
続いてcase文を用いて書くと
member = "ゆめまる"
case member
when "てつや"
"オレンジ"
when "りょう"
"ブルー"
when "しばゆー"
"イエロー"
when "ゆめまる"
"ピンク"
when "虫眼鏡"
"ブラウン"
when "としみつ"
"グリーン"
end
少しスッキリしましたね!これでも結果は同じピンク
が返ってきます。
ここまでは良くあるリファクタですが最後にハッシュを使ったリファクタリングを行って終わりたいと思います。
members_color = {
"てつや" => "オレンジ",
"りょう" => "ブルー",
"しばゆー" => "イエロー",
"ゆめまる" => "ピンク",
"虫眼鏡" => "ブラウン",
"としみつ" => "グリーン"
}
member = "ゆめまる"
puts members_color[member]
=> "ピンク"
ハッシュを使うとかなり簡潔に取り出したい値を取得することができます。
そして更なるメリットはcase文は上から条件比較しなくてはいけないのに対し、ハッシュを使うことによって一致するものを即座に返してくれるので、少し処理速度も早くなります。
おわりに
ちょっとしたリファクタの積み重ねで読みやすい、理解しやすいコードになります。今後他の人が該当コードを改修する時、自分自身が改修することも意外と多いので自分自身のためにもちょっとしたリファクタリングを心がけていきたいですね。
最後までご覧いただきありがとうございました!
少しでも良かったと思っていただけたら左上のいいねボタンポチッといただけますと幸いです。