Ruby で when 節内に複数のステートメントを含む case ステートメントを記述するにはどうすればよいですか?
概要
when 句内のステートメントをカンマで区切ろうとしましたが、うまくいきませんでした。
この例はオンラインで見つかりませんでした。
case selection
when 1
system "clear"
view_all_entries
main_menu
when 2
system "clear"
create_entry
main_menu
when 3
system "clear"
search_entries
main_menu
when 5
puts "Good bye!"
exit(0)
else
system "clear"
puts "Sorry, that is not a valid input"
main_menu
end
解決策
あなたの質問は、「行数を減らすために、これらのステートメントをすべて 1 行に配置するにはどうすればよいですか」ということのようです。
通常は「;」を使用できます。 Ruby で行末を置き換えます。したがって:
case selection
when 1; system "clear"; view_all_entries; main_menu
...
または
case selection
when 1 then system "clear"; view_all_entries; main_menu
...
「;」を使用するいずれにせよ、これは Ruby らしくないため、お勧めできません。重複したコードを削除する、より優れたリファクタリングについては、以下 (他の回答) を参照してください。